Ade*_*ial 1 node.js next.js pnpm
我正在尝试将以下项目部署到生产中:https://github.com/saleor/apps 有问题的子模块: https: //github.com/saleor/apps/tree/main/apps/slack
这是我正在采取的步骤。
我已经output: "standalone"在 next.config.js 中设置了
问题是当我尝试使用以下命令运行独立服务器时:
node .next/standalone/apps/slack/server.js
Run Code Online (Sandbox Code Playgroud)
直到我这样做:
localhost:3000然后 404 就消失了...即使在运行时node .next/standalone/apps/slack/server.js

我问是因为这似乎与 Next.js 有关,而不是与应用程序本身有关?但我没有 Next.js 或 Node 开发经验,所以我不确定。
这对我来说是一个问题,因为我想制作一个 docker 镜像。我在将此工作流程转换为 Dockerfile 时遇到问题。
编辑:
我尝试使用https://github.com/vercel/next.js/tree/canary/examples/with-docker中的 Dockerfile
但是它们不包含start在构建过程中。
编辑2:
通过运行diff -qr working/ broken/我发现运行后没有任何差异pnpm start。这可能是 Chrome 缓存造成的吗?
编辑3:
这似乎是一个缓存问题,因为在运行 pnpm start 并从 chrome 访问页面后,使用独立 server.js 时,问题在 Firefox 中仍然存在,但是我不知道为什么在使用时加载页面,而next start不是在使用时加载页面node server.js
谢谢。
在 pnpm monorepo 中,使用 Next.js 独立输出时,您必须手动复制静态文件夹和公共文件夹。
此外,还会输出一个最小的 server.js 文件,可用于代替下次启动。默认情况下,这个最小的服务器不会复制 public 或 .next/static 文件夹,因为理想情况下这些文件夹应该由 CDN 处理,尽管可以手动将这些文件夹复制到standalone/public 和standalone/.next/static 文件夹,然后server.js 文件将自动提供这些服务。
然而我将它们复制到了错误的目的地,导致了 404 错误。
复制到standalone/apps/slack/.next而不是standalone/.next,对公众来说也是一样。
https://nextjs.org/docs/app/api-reference/next-config-js/output#automatically-copying-traced-files
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |