首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Next.js部署: Node.js还是静态Node.js导出?

Next.js部署: Node.js还是静态Node.js导出?
EN

Stack Overflow用户
提问于 2021-07-01 07:14:02
回答 1查看 2.1K关注 0票数 1

我是Next.js新手,我正在研究Next.js部署选项https://nextjs.org/docs/deployment,我遇到了以下选项(我猜是最常用的):

我想知道,那里的实际差别是什么,以及如何更好地检测应该使用哪种方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-01 11:10:02

我相信Next.js的官方文档恰当地涵盖了这一点:高级特性:静态HTML导出

还有一些我认为应该强调的要点:

  • 通过Next.js静态导出next export应用程序将禁用next export路由(因为它们不能预先录制到next export)。
  • next export适用于页面的none有服务器端数据需求的场景(您必须获取所有数据客户端或在构建期间)。
  • next export会导致增量静态生成/再生等功能被禁用。
  • I18n路由不受支持(在静态HTML导出中),因为它需要Next.js的服务器端路由。

实际的区别是什么?

顾名思义,当您静态导出应用程序时,您只需将其构建成一堆HTML、CSS、JS文件,这些文件可以轻松地存放在任何地方。

另一方面,当您在Node.js服务器上部署时,您可以使用更多的特性(如上所述)。虽然最终HTML、CSS、JS都会发送到浏览器,但是在发送之前可以指定您的逻辑。

您可以定义您的API,而不需要分别编写应用程序的后端。您可以在服务器端呈现您的页面,您可以获取数据并将其添加到您的页面中,这样就不会从客户端发出请求(如果您不想共享从哪里获取的数据,则这是必需的)。

此外,当您的代码在Node.js服务器上运行时,您可以使用默认的next/image加载器,它优化您所提供的映像。在静态导出中,您需要使用第三方库或(通常是付费的)加载器,或者手动优化它们。

应该使用哪种方法

这是你自己需要解决的问题。如果宿主提供商限制您只使用静态资产,那么您将被迫通过静态导出HTML来部署站点。

如果您的提供者可以选择部署Node.js应用程序,那么您需要检查各种参数,比如您实际上需要一个服务器来运行您的应用程序,您是否有一些不能/不应该在客户端执行的代码?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68205826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档