将 Nextjs 应用程序部署到 Cpanel 子域不起作用

问题描述 投票:0回答:3

因此,我遵循了有关如何通过添加 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,而它实际上在那里。

对可能出现的问题有任何帮助或更好教程的链接吗?

node.js next.js cpanel
3个回答
0
投票

您的应用程序根名称应与应用程序网址相同。 还要确保您上传了应用程序根名称中的所有文件。

所需的组件是 .next/ 目录和文件 next.config.js、package.json 和 server.js、package-lock.json


0
投票

单击“停止应用程序”按钮并刷新页面。


0
投票

请问这个问题解决了吗?我遇到了完全相同的问题,但无法解决。

© www.soinside.com 2019 - 2024. All rights reserved.