You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13部署至cpanel时空白无数据显示问题求助

Next.js 13部署到cpanel出现空白页面的排查与解决

以下是针对部署问题的具体排查方向和修复方案:

1. 修正server.js生产环境配置

你的server.js硬编码了hostname: 'localhost'和固定端口3000,这在cpanel生产环境中会导致路由和资源加载异常。修改server.js如下:

const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
// 生产环境不强制指定hostname,让Next自动适配cpanel的域名配置
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  createServer(async (req, res) => {
    try {
      const parsedUrl = parse(req.url, true)
      const { pathname, query } = parsedUrl

      // 保留自定义路由逻辑(若无需求可直接删除)
      if (pathname === '/a') {
        await app.render(req, res, '/a', query)
      } else if (pathname === '/b') {
        await app.render(req, res, '/b', query)
      } else {
        await handle(req, res, parsedUrl)
      }
    } catch (err) {
      console.error('Error occurred handling', req.url, err)
      res.statusCode = 500
      res.end('internal server error')
    }
  })
    .once('error', (err) => {
      console.error(err)
      process.exit(1)
    })
    .listen(process.env.PORT || 3000, () => {
      console.log(`> Ready on port ${process.env.PORT || 3000}`)
    })
})

2. 适配cpanel的start命令与环境变量

cpanel的Linux环境下,确保start命令正确设置生产环境变量,同时建议开启Next.js的standalone输出优化部署:

修改package.json的scripts:

{
  "scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js"
  }
}

添加next.config.js配置(若不存在则新建):

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'standalone', // 生成独立运行包,减少cpanel环境依赖
  basePath: '' // 根域名部署留空,子目录部署填写对应路径
}

module.exports = nextConfig

3. 验证cpanel部署步骤

  • 本地执行npm run build确保无报错,生成完整的.next文件夹
  • 将项目所有文件(包括.next、package.json、server.js、next.config.js等)上传至cpanel目标目录(如public_html)
  • 在cpanel的「Node.js App Manager」中配置:
    • 启动文件:选择server.js
    • 环境变量:添加NODE_ENV=production
    • 应用根目录:指向项目所在文件夹
    • 保存后重启应用

4. 浏览器端排查

打开网站的开发者工具(F12):

  • 查看Console标签,确认是否有JS执行报错(如模块加载失败、资源路径错误)
  • 查看Network标签,检查静态资源(JS、CSS、图片)的请求状态,若出现404需修正资源路径配置

5. 检查Node.js版本兼容性

Next.js 13要求Node.js版本≥16.8,在cpanel的「Node.js App Manager」中切换至符合要求的版本,避免版本不兼容导致的运行异常

内容的提问来源于stack exchange,提问作者Đặng Văn Vượng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 00:37:43