我正在尝试使用 Plesk 在我的节点服务器上启动 NextJS 应用程序,但它不工作。我为我的 Plesk 环境激活了 NodeJS,我能够运行 npm install 和 npm build,但是现在,当我尝试启动该应用程序时,Plesk 只显示“请稍候”并且没有任何变化,我一直在等待现在已经超过 2 个小时了,但我没有得到任何结果,没有错误,什么都没有。
我唯一能想到的问题是,根据我能找到的,应用程序启动文件和 package.json 文件应该在同一个目录,即根文件夹中,但在我的情况下这是不可能的。我的 package.json 位于根目录中,但 NextJS 的启动文件 index.js 位于 pages 文件夹中。我测试了在本地构建和启动应用程序,一切正常,我不明白为什么它不能与 Plesk 一起工作。
在更正启动文件后我能够解决这个问题,它应该是“node_modules/.bin/next”而不是“pages/index.js”。
此外,当您启动您的应用程序时,Plesk 会告诉您等待。只需检查站点并确保它正在运行,如果是,您可以关闭 Plesk。
您可能需要在 Next.js 中安装 Express
你可以参考这个 repo fmi @ https://github.com/zeit/next.js/tree/canary/examples/custom-server-express
如果您指的是 package.json 的命令,我们将有:
在 Plesk 的节点应用程序扩展中。
build
命令之前运行start
命令。有用的 NPM/Plesk 参考资料:
如果您遇到目录问题,您可以通过编辑 next.config.js 文件来创建 next.js 应用程序的独立版本:
module.exports = {
output: 'standalone',
}
(参见文档https://nextjs.org/docs/advanced-features/output-file-tracing)
这将需要一些其他步骤,但至少您的所有文件都会在一起。 (参见https://mytchall.dev/removing-the-build-folders-when-deploying-next-js-on-plesk/)