因此,我遵循了有关如何通过添加 server.js 文件并使用以下内容修改 Package.json 文件将 NextJs 应用程序部署到 Cpanel 托管上的子域的教程:
// server.js
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const hostname = 'localhost'
const port = process.env.port || 3000
// when using middleware `hostname` and `port` must be provided below
const app = next({ dev, hostname, port })
const handle = app.getRequestHandler()
app.prepare().then(() => {
createServer((req, res) => {
// Be sure to pass `true` as the second argument to `url.parse`.
// This tells it to parse the query portion of the URL.
const parsedUrl = parse(req.url, true)
const { pathname, query } = parsedUrl
if (pathname === '/a') {
app.render(req, res, '/a', query)
} else if (pathname === '/b') {
app.render(req, res, '/b', query)
} else {
handle(req, res, parsedUrl)
}
}).listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://${hostname}:${port}`)
})
})
//Package.json file
...
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "NODE_ENV=production node server.js",
"lint": "next lint",
"json-server": "json-server --watch db.json --port 3004"
}
...
我运行 npm build 并将文件上传到指向子域的文件夹。但是,当我在 Cpanel 中的 Node.js 中创建应用程序时,“运行 NPM 安装”按钮呈灰色,并且我不断得到的信息是在文件夹中找不到 package.json,而它实际上在那里。
对可能出现的问题有任何帮助或更好教程的链接吗?
您的应用程序根名称应与应用程序网址相同。 还要确保您上传了应用程序根名称中的所有文件。
所需的组件是 .next/ 目录和文件 next.config.js、package.json 和 server.js、package-lock.json
单击“停止应用程序”按钮并刷新页面。
请问这个问题解决了吗?我遇到了完全相同的问题,但无法解决。