【问题标题】:How to use Next.js Automatic Static Site Optimization and still export for Netlify?如何使用 Next.js 自动静态站点优化并仍然为 Netlify 导出?
【发布时间】:2020-08-06 07:18:48
【问题描述】:

我一直在努力实施来自Next 9.3 的一些更新。我一直在从getInitialProps 移动到getServerSideProps 并注意到我的exportPathMap 对这些页面变得动态不满意。运行next 一切正常,但是当我运行next build && next export 时,我遇到了一些问题。

static html export 的文档中,它声明If your pages don't have getInitialProps you may not need next export at all; next build is already enough thanks to Automatic Static Optimization. 当我运行next build && next start 时,我能够让它与我的新getServerSideProps 调用愉快地工作。我需要采取哪些步骤才能使其也可以与next export 一起使用,以便我可以通过 Netlify 进行部署。这是我尝试运行next export时遇到的错误示例

Error occurred prerendering page "/videos/[videos_title]". Read more: https://err.sh/next.js/prerender-error:
Error: Error for page /videos/[videos_title]: pages with `getServerSideProps` can not be exported. See more info here: https://err.sh/next.js/gssp-export

【问题讨论】:

  • 在这里遇到同样的问题.. 你也可以在 nextjs github 页面本身中提出错误/请求吗?
  • 我认为使用 getServerSideProps 时无法在 Netlify 上进行部署。
  • @Ganesh 我认为你是对的。您不能将 getServerSideProps 与下一次导出一起使用,因为下一次导出会将站点导出为静态站点。
  • 我提供了部署 NextJS SSR 应用程序的方法。如果有帮助,请结帐并接受,以便其他人可以使用它。

标签: next.js netlify static-site


【解决方案1】:

使用 SSR 构建的应用程序不能部署在 Netlify 或任何其他静态托管站点(Vercel 除外,它支持 NextJS SSR 部署)

当你选择 SSR(使用 getServerSideProps)时,没有意义 使用命令next export,因为它会尝试创建静态 与SSR完全相反的内容。

  

  • 一种部署方式是在虚拟服务器(如 EC2)中运行它 通过创建具有正确路由配置的自定义 server.js 文件。
  • 另一个简单快捷的方法是使用 Vercel (Zeit 以前) 用于部署 SSR 实现的应用程序,其中 他们明智地处理它

Vercel 的 SSR 应用程序部署文档很差。幸运的是,我从支持团队获得了以下信息,并要求他们更新文档以详细说明 Vercel 中的 SSR 部署。

在 Vercel 中部署时,

  • next buildnpm run build 提供构建命令
  • 将输出目录保留为

注意:带有自定义 server.js 的应用程序将无法在 Vercel 中正常工作,在这种情况下,请使用虚拟服务器(如 EC2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2022-10-22
    • 1970-01-01
    • 2021-04-05
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多