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

部署PERN应用至Heroku时遭遇404错误求助

排查Heroku部署API 404问题的关键步骤
  • 端口配置检查:确保服务器代码使用Heroku动态分配的端口,代码里必须写const port = process.env.PORT || 3001;,不能硬编码固定端口(比如3000)。硬编码会导致Heroku无法正确映射端口,请求无法到达服务器。

  • 路由匹配验证:

    • 确认后端API路由的前缀和前端请求路径完全一致。比如前端请求/api/users,后端必须有对应的app.get('/api/users', ...)路由定义。
    • 如果是前后端同部署的项目,后端要先定义API路由,再配置静态文件服务和兜底路由(比如SPA的*路由)。如果兜底路由放在API路由前面,所有请求都会被导向前端页面,导致API返回404。
  • 启动命令与静态文件配置:

    • 检查项目根目录的package.json里的start命令是否正确。如果是前后端合一的项目,确保启动命令先构建前端(如果需要)再启动服务器,比如"start": "npm run build && node server.js"(根据实际项目调整)。
    • 后端用Express的话,必须添加静态文件服务代码:
      const path = require('path');
      app.use(express.static(path.join(__dirname, 'client/build')));
      
      注意API路由要写在这段代码之前,避免被静态文件路由拦截。
  • 查看Heroku日志:执行heroku logs --tail命令查看实时日志,重点关注:

    • 服务器启动时的日志,确认是否成功监听指定端口。
    • API请求到达时的日志,查看请求路径和服务器的路由匹配记录,判断是请求路径错误还是路由未定义。
  • 环境变量检查:在Heroku控制台的配置页面确认NODE_ENV是否设置为production,以及其他必要的环境变量(如数据库连接字符串)是否配置正确。缺失关键环境变量可能导致路由模块无法正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:18:27