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

create-react-app构建的React应用部署GitHub Pages静态文件404问题求助

问题排查与解决方法
  • 第一步:确认gh-pages分支的文件结构是否正确
    绝大多数404问题都源于提交结构错误:不要将整个build文件夹提交到gh-pages分支的根目录,要提交build文件夹内的所有文件到gh-pages分支根目录。
    正确的gh-pages分支根目录结构应该直接包含index.html、static文件夹、favicon.ico、manifest.json等文件,而非一个单独的build文件夹。
  • 第二步:修正package.json中homepage字段的配置
    你设置为空字符串的方案仅适用于资源路径和index.html同级的场景,需要根据你的站点类型调整:
    • 如果是用户/组织根站点(仓库名格式为<用户名>.github.io,直接通过https://<用户名>.github.io访问):homepage设置为"/"即可
    • 如果是项目站点(仓库为其他名称,访问路径为https://<用户名>.github.io/<仓库名>/):homepage需要设置为"/<你的仓库名>/",或者填写完整的站点地址"https://<用户名>.github.io/<你的仓库名>/"
      配置完成后本地执行npm run build,检查生成的build/index.html中资源引用路径是否符合预期。
  • 第三步:核对GitHub Action配置是否正确
    建议使用标准化的gh-pages部署Action,避免手动处理文件复制逻辑,核心配置参考:
    - name: Build project
      run: npm run build
    - name: Deploy to GitHub Pages
      uses: peaceiris/actions-gh-pages@v4
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./build
    
    该配置会自动将build目录下的所有内容推送到gh-pages分支根目录,无需额外处理路径。
  • 其他注意事项
    控制台输出的Permissions-Policy header警告是GitHub Pages默认返回头的兼容问题,和静态资源404无关,无需处理。
    如果后续出现路由跳转404的问题,将路由模式改为HashRouter即可,BrowserRouter需要服务端配置路由 fallback,GitHub Pages默认不支持。

内容的提问来源于stack exchange,提问作者Brandon Piña

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:24:06