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

Heroku Review App访问出现404,子域名配置是否影响该功能使用?

解决Heroku Review App 404问题:子域名配置适配指南

别急,咱一步步来排查解决——你的情况完全是可修复的,核心问题就是你的应用依赖固定子域名(app.domain.com、api.domain.com),但Heroku Review App默认用临时域名,两者的路由规则不匹配,并不是不能用Review App功能!

下面是具体的排查和修复步骤:

1. 把硬编码的子域名改成环境变量驱动

你的代码里大概率写死了app.domain.com这类子域名判断,导致请求到Review App的临时域名(比如yourapp-pr-42.herokuapp.com)时,路由直接不匹配返回404。

  • 修复方式:在代码中替换所有固定子域名,改用环境变量动态获取。比如:
    • 原来的代码:if (req.hostname === 'app.domain.com') { ... }
    • 修改后:const appDomain = process.env.APP_DOMAIN || req.hostname; if (req.hostname === appDomain) { ... }
  • 这样在Review App环境中,只要把APP_DOMAIN设为Heroku分配的临时域名,就能正常匹配路由了。

2. 在app.json中配置Review App的环境变量

Review App不会自动继承Staging环境的所有变量,你需要在项目根目录的app.json里明确配置需要传递的环境变量,让Heroku自动填充临时域名:

{
  "name": "Your App Name",
  "scripts": {},
  "env": {
    "APP_DOMAIN": {
      "description": "Domain for the review app",
      "value": "${HEROKU_APP_NAME}.herokuapp.com"
    },
    "API_DOMAIN": {
      "description": "API domain for the review app",
      "value": "${HEROKU_APP_NAME}.herokuapp.com"
    }
  },
  "formation": {},
  "addons": []
}

${HEROKU_APP_NAME}是Heroku的内置变量,会自动替换为Review App的临时应用名称,拼接后就是它的临时域名。

3. 检查应用路由的根路径适配

如果你的应用是单页应用(React/Vue/Angular),还要确保静态资源路由的fallback配置正确,不然刷新Review App页面会返回404:

  • 比如React项目,需要在static.json中添加路由 fallback:
{
  "root": "build/",
  "clean_urls": false,
  "routes": {
    "/**": "index.html"
  }
}
  • 如果是后端服务(比如Node.js/Rails),要确保根路径/有对应的路由处理,或者允许没有子域名的请求进入应用。

4. 查看Heroku部署日志排查隐性错误

有时候404不是路由问题,而是应用没正确启动、静态资源没编译完成,或者数据库连接失败。你可以:

  • 打开Heroku Dashboard,找到对应的Review App
  • 切换到Logs标签,查看部署和启动日志,有没有报错信息(比如Error: connect ECONNREFUSED或者Static file not found)

最后再解答你的顾虑:完全可以用Review App!

子域名配置不会阻碍你使用Heroku Review App功能——只要把应用的子域名依赖从“硬编码”改成“环境变量驱动”,Review App的临时域名就能完美适配你的路由规则,和生产环境的子域名逻辑互不冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:30:10