服务器端渲染不适用于生产构建 Next.js

IT技术 reactjs next.js server-side-rendering
2021-04-25 04:02:43

我想将我的 Next.js 应用程序部署到我自己的主机上。我运行next export以构建应用程序,它可以工作并且我能够在我的托管服务器上运行它。但问题是应用程序不是服务器端渲染(在除主页之外的任何页面上重新加载应用程序都会导致错误):

在此处输入图片说明

我是 Next.js 的新手,我以前在 React 上的应用程序无法进行服务器端渲染,所以我对此有点困惑。欢迎任何帮助,谢谢!

1个回答

根据文档,next export用于将您的项目导出为静态 HTML。更重要的是,文档状态(强调我的):

next export适用于您的页面都没有 服务器端或增量数据需求的场景(尽管静态呈现的页面仍然可以在客户端获取数据 就好了)。

如果您想创建一个混合站点,其中只有一些页面被预呈现为静态 HTML,Next.js 已经为您自动完成了!阅读自动静态优化以了解详细信息。

next export 还会导致增量静态生成和再生等功能被禁用,因为它们需要下次启动或无服务器部署才能运行。

这意味着,如果您的路由需要使用 获取服务器端数据getServerSideProps,您需要通过 Next.js ( next build && next start) 或自定义节点服务器将项目作为 Node.js 服务器运行