gpt4 book ai didi

deployment - Next.js 中的 `next export` 和 `next build` 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 15:59:41 41 4
gpt4 key购买 nike

我开发了一个 Web 应用程序,它使用 Nextjs 应用程序作为前端和一个 Python (Django) API 服务器作为后端。我的大多数前端页面都有对后端服务器的 API 调用(在 ComponentDidMount 中或响应用户操作,如按钮点击)。

我想将此应用程序部署到我的服务器。我使用 Nginx 作为反向代理。后端部署已排序。我对部署 nextjs 应用程序感到困惑。

阅读文档后,我认为有两种方法可以做到这一点:

  • 运行 next build然后 next start .这将在端口 3000 上启动一个 nodejs 服务器。我可以使用 nginx 将流量引导到这个端口。
  • 运行 next export .这将生成一个 out目录。我可以使用像 Nginx 这样的反向代理将传入流量引导到这个目录。

  • 我应该使用这两个选项中的哪一个?有什么区别?

    最佳答案

    借助我在 NextJS 讨论论坛上收到的答案回答我自己的问题 link here

    下一次构建、启动和导出的基础知识
    next build.next 中构建生产应用程序文件夹。无论是否要运行next start,都需要运行此命令。或 next export .

    建成后,next start启动一个支持混合页面的 Node.js 服务器,为静态生成和服务器端呈现的页面提供服务。
    next export将您的所有页面导出到您可以与任何主机一起使用的静态 HTML 文件。这类似于create-react-app可以,但您仍然可以在构建时使用 exportPathMap 构建动态页面.

    备注 :静态生成的页面,使用 next export ,仍然是响应式的,即任何在运行时更新页面的动态 JS 代码将继续像往常一样运行(就像任何其他 ReactJS 应用程序一样)。 Next.js 将为您的应用程序客户端提供充分的交互性。只是页面的动态部分只会在运行时在浏览器中呈现,因此搜索引擎爬虫无法使用它。

    什么时候使用下一次导出?
    next export如果您有一些需要获取一些数据的动态页面,建议使用 只有在“构建”时。它非常适合登录页面、博客、新闻文章等页面,或仅在代码构建期间更新的其他类型页面。如果您的页面数据需要更频繁地更新,您可以设置一个后台任务来定期构建您的代码。这将 加速您的“首次绘制”速度,并将整个页面数据提供给搜索引擎爬虫以进行索引。

    下次启动什么时候使用?

    如果您不需要在构建时获取任何数据,即您的页面在运行时动态呈现,那么您应该使用 next build然后 next start .这还将为页面的非动态部分生成静态 HTML。这将加快页面的“首次绘制”时间。看到这个 Automatic Static Optimization .

    关于deployment - Next.js 中的 `next export` 和 `next build` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61724368/

    41 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com