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

Node.js部署Heroku遇404错误:本地正常线上无法GET /

解决Heroku部署Express应用出现404错误的方案

1. 修复路由与文件路径错误

你的server.js存在两处关键问题:

  • 路由路径多了末尾斜杠,导致根路径/无法匹配
  • sendFile的参数语法错误,path.join的所有路径片段需放在同一个括号内

修改后的路由代码:

// 修正路由路径,移除末尾多余斜杠
app.get('/*', (req, res) => {
    // 正确拼接文件路径
    res.sendFile(path.join(__dirname, 'public', 'index.html'));
});

2. 同步静态文件目录路径

如果server.js位于Develop文件夹,而public文件夹在项目根目录(与Develop同级),需修正静态文件托管路径:

// 从Develop目录向上定位到根目录的public文件夹
app.use(express.static(path.join(__dirname, '../public')));

3. 核对启动脚本路径

本地运行node server.js正常,但Heroku依赖package.json的start脚本启动。若server.js在项目根目录,而非Develop文件夹,修改scripts配置:

{
  "scripts": {
    "start": "node server.js"
  }
}

4. 重新部署验证

  • 提交所有修改到Git:git add . && git commit -m "fix routing and path issues"
  • 重新部署到Heroku:git push heroku main

额外检查点

  • 确认process.env.PORT已正确使用,Heroku会自动分配端口,无需硬编码
  • 检查.gitignore是否误排除了public目录或server.js,确保核心文件已被Git追踪

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:55:19