今天我们将使用重写来处理Next.js应用程序中的HTML页面。
在很多情况下,如果你需要在Next.js应用程序内使用HTML页面,会有一些变化。也许客户已经营销了一些HTML页面,他们想将其整合到现有的应用程序中,或者有人可能想使用他们现有的应用程序,并将一些页面迁移到Next.js应用程序中去
不管是什么情况,如果你想把你的静态HTML文件移到你的Next.js应用程序中,我们将告诉你如何实现。
我可以使用重写的动态HTML页面吗?
你可能会考虑是否可以使用改写器将动态HTML页面像静态或应用程序页面一样移动。
答案是你可以,但你不应该。
如果你的HTML页面包含业务逻辑或文件范围之外的调用方法,并使用它来做一些动态编程,你不应该使用重写。
如果你的HTML页面想要使用你的Next.js中的方法或API,那么使用这些将是相当困难的,相反,你可能想把HTML页面完全迁移到Next页面,这样它们就可以坚持与其他应用页面一样的行为。
如何在Next.js应用程序中使用静态HTML文件
首先,我们需要创建一个Next.js应用程序,我们可以通过以下命令来完成。
yarn create next-app
这将提示应用程序的名称,并为我们创建应用程序。
一旦应用程序被创建,我们可以添加一些随机的静态HTML文件。
例如,我们可以在公共目录下创建一个html文件夹,并在其中放置一些随机的HTML页面。
在这里,我们创建了一个样本HTML文件,在URL localhost:3000/html/index.html上的输出会是这样的
output in localhost:3000/html/index.html
现在,让我们把这个/html/index.html移动到/页面。
为了实现这一点,我们需要写一个重写规则,将HTML页面重写到应用程序的/路线上。
约束条件
对于这个开箱即用的功能,有一个约束条件,即你要重写的路由不应该存在于应用程序的pages文件夹中。
例如,如果index.js文件存在于pages文件夹中,我们就不能为该路由写一个重写规则。因此,首先,我们需要重命名或删除现有的文件,以使事情顺利进行。
如果你想使用本地图片或CSS文件,那么你将需要遵循Next.js路径,而不是CSS和图片或其他媒体文件的相对路径。比如说:
Actual format
Next.js format
因为静态文件将由Next.js应用程序提供。
谢谢你的阅读!