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

提交代码到Git分支后Heroku应用资源加载失败的原因与修复

故障原因
  1. 误执行git init:在已有Git仓库的项目中重新初始化,直接重置了仓库的分支、远程关联等核心配置,导致后续提交的代码并非Heroku所需的正确版本。
  2. 嵌套Git仓库冲突:项目根目录与后端文件夹各自存在独立Git仓库,根目录的Git会默认忽略后端文件夹内的仓库内容,使得前端构建后复制到后端public的静态资源无法被根仓库追踪,最终未同步到Heroku服务器。
  3. 静态资源未正确部署:重新部署时未重新执行前端构建并同步产物到后端public,或因仓库问题导致构建产物未被提交,使得Heroku上的应用无法找到正确的favicon.ico、manifest.json等资源,出现%PUBLIC_URL%未替换的报错(这是前端未正确构建或构建产物未被部署的典型表现)。
修复步骤

步骤1:清理错误的Git初始化状态

  • 回到项目根目录,先确认并恢复Heroku远程关联:
    # 查看当前远程仓库列表
    git remote -v
    # 如果没有heroku远程,重新添加
    heroku git:remote -a mytrialapp1427
    
  • 切换回原master分支,确保部署基准正确:
    git checkout master
    

步骤2:移除后端嵌套Git仓库

后端文件夹内的独立Git仓库会干扰根仓库的文件追踪,需统一用根仓库管理所有代码:

  • 进入后端文件夹,删除其内部的.git目录(若后端有需要保留的提交记录,先备份该.git目录):
    cd 后端文件夹名称
    rm -rf .git
    cd ..
    
  • 回到根目录,让根仓库重新追踪后端文件夹的所有内容:
    git add 后端文件夹名称
    git commit -m "移除后端嵌套Git仓库,统一根仓库管理"
    

步骤3:重新构建前端并同步产物

  • 进入前端文件夹,执行构建命令(以React项目为例,其他框架请替换为对应构建命令):
    cd 前端文件夹名称
    npm run build
    cd ..
    
  • 将前端构建产物同步到后端public文件夹:
    # 清空后端public旧资源(可选,避免残留)
    rm -rf 后端文件夹名称/public/*
    # 复制新构建的静态资源
    cp -r 前端文件夹名称/build/* 后端文件夹名称/public/
    

步骤4:重新提交并部署到Heroku

  • 回到根目录,提交所有更改:
    git add .
    git commit -m "重新构建前端,同步产物到后端public,修复资源加载问题"
    
  • 推送到Heroku的master分支完成部署:
    git push heroku master
    

步骤5:验证修复效果

部署完成后,打开Heroku应用,检查浏览器控制台是否还有资源加载报错,同时查看Heroku日志确认请求路径已正常解析(不再出现/%PUBLIC_URL%/这类未替换的路径)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:02:58