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

Next.js项目上传cPanel遇问题:仅显示文件且无server.js等文件

解决Next.js部署到cPanel的两个问题:文件列表显示&无app.js/server.js入口

先搞懂核心逻辑

Next.js 不是传统的Node.js项目(依赖单独的app.js/server.js启动),它的运行依赖预构建的生产包,或者通过官方的next start命令启动服务,不需要你手动写入口文件。


步骤1:本地构建生产版本

在你的本地Next.js项目根目录执行以下命令:

# 构建生产包
npm run build

# 可选:如果要静态导出(适合纯静态页面),执行这个命令(Next.js 13+需在next.config.js中配置output: 'export')
npm run export

执行完成后会生成:

  • 服务器渲染模式:.next目录 + 项目根的package.json/next.config.js
  • 静态导出模式:out目录(里面是所有静态HTML/CSS/JS文件)

步骤2:正确上传文件到cPanel

服务器渲染模式上传内容

只上传以下文件/目录到cPanel的一个子目录(比如~/public_html/next-app,不要直接丢public_html根目录):

  • .next 目录
  • package.json
  • package-lock.json(或yarn.lock)
  • next.config.js

静态导出模式上传内容

直接把out目录里的所有文件上传到cPanel的public_html根目录,覆盖原有文件。


步骤3:配置cPanel Node.js服务器(仅服务器渲染模式需要)

  1. 打开cPanel的「Node.js应用管理器」,创建新应用,选择你上传文件的子目录(比如next-app),并匹配项目的Node.js版本(必须和本地一致)。
  2. 修改package.json的启动脚本,添加/修改:
"scripts": {
  "start": "next start -p [你的端口号]",
  "build": "next build"
}

这里的端口号用cPanel Node.js应用分配给你的端口(创建应用后会显示)。
3. 在Node.js应用管理器中,设置启动命令为npm run start,保存并启动应用。


步骤4:解决浏览器显示文件列表的问题

服务器渲染模式

在cPanel的应用根目录创建.htaccess文件,添加以下规则(替换端口号为你的应用端口):

RewriteEngine On
RewriteRule ^(.*)$ http://localhost:[你的端口号]/$1 [P,L]

这个规则会把所有域名请求转发给Next.js服务器,不再显示目录文件列表。

静态导出模式

因为已经把静态文件直接放在public_html根目录,cPanel会自动加载index.html,不会显示文件列表(如果还是显示,检查public_html里是否有index.html,并确保cPanel的目录索引设置优先加载index.html)。


常见坑点

  • Node.js版本不兼容:cPanel的Node.js版本必须和本地项目一致,否则会启动失败。
  • 路径错误:服务器渲染模式下,应用根目录必须指向你上传.next和package.json的目录,不能是public_html根目录。

内容的提问来源于stack exchange,提问作者Karan Meghwanshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:52:36