Ste*_*hke 5 production build reactjs next.js
我已经构建了一个 next.js 应用程序。这些页面在开发环境中运行良好,但如果我尝试运行生产构建,则只有 index.js 页面正确加载,所有其他页面都以 404 结尾。
npm run build 输出以下内容:
reating an optimized production build ...
Compiled successfully.
Warning: You have opted-out of Automatic Prerendering due to `getInitialProps` in `pages/_app`.
Read more: https://err.sh/next.js/opt-out-automatic-prerendering
Page Size Files Packages
? ? / 66.8 kB 4 27
? /_app 17.9 kB 0 31
? /_document
? /_error 397 B 0 27
? ? /Products/[specificPage]/Dashboard 404 B 4 27
? ? /Products/Overview 95.1 kB 9 30
? ? /Products/Roadmap 475 B 4 27
? ? /Strategy/Goals 451 B 4 27
? ? /Strategy/Metrics 459 B 4 27
Run Code Online (Sandbox Code Playgroud)
因此,我假设页面得到正确构建。这现在让我相当困惑。
在我的 index.js 页面上,我有一个指向 /strategy/goals 的下一个/链接,如果单击该链接将永远加载。如上所述,如果直接访问该页面将显示 404。
编辑:此外,控制台仅在http://localhost:3000上显示 Ready --> 不显示有关构建页面的任何日志,不确定这应该在生产中发生还是仅在开发中发生。
TLDR: /pages 应该只包含小写字母。
(由本人回答)
问题是文件夹名称和文件(例如/Product/Overview)大写,这在测试中没有问题,因为下一个直接路由并且大小写没有问题。
执行构建版本,生产环境的文件系统接管路由。某些操作系统(对我来说是 macOS)区分大小写,并且由于找不到页面而无法正确路由。
通过小写 /pages 目录中的所有内容来修复。
| 归档时间: |
|
| 查看次数: |
3945 次 |
| 最近记录: |