我是Next.js新手,我正在研究Next.js部署选项https://nextjs.org/docs/deployment,我遇到了以下选项(我猜是最常用的):
我想知道,那里的实际差别是什么,以及如何更好地检测应该使用哪种方法?
发布于 2021-07-01 11:10:02
我相信Next.js的官方文档恰当地涵盖了这一点:高级特性:静态HTML导出
还有一些我认为应该强调的要点:
next export应用程序将禁用next export路由(因为它们不能预先录制到next export)。next export适用于页面的none有服务器端数据需求的场景(您必须获取所有数据客户端或在构建期间)。next export会导致增量静态生成/再生等功能被禁用。实际的区别是什么?
顾名思义,当您静态导出应用程序时,您只需将其构建成一堆HTML、CSS、JS文件,这些文件可以轻松地存放在任何地方。
另一方面,当您在Node.js服务器上部署时,您可以使用更多的特性(如上所述)。虽然最终HTML、CSS、JS都会发送到浏览器,但是在发送之前可以指定您的逻辑。
您可以定义您的API,而不需要分别编写应用程序的后端。您可以在服务器端呈现您的页面,您可以获取数据并将其添加到您的页面中,这样就不会从客户端发出请求(如果您不想共享从哪里获取的数据,则这是必需的)。
此外,当您的代码在Node.js服务器上运行时,您可以使用默认的next/image加载器,它优化您所提供的映像。在静态导出中,您需要使用第三方库或(通常是付费的)加载器,或者手动优化它们。
应该使用哪种方法
这是你自己需要解决的问题。如果宿主提供商限制您只使用静态资产,那么您将被迫通过静态导出HTML来部署站点。
如果您的提供者可以选择部署Node.js应用程序,那么您需要检查各种参数,比如您实际上需要一个服务器来运行您的应用程序,您是否有一些不能/不应该在客户端执行的代码?
https://stackoverflow.com/questions/68205826
复制相似问题