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

React项目部署gh-pages后页面空白,本地运行正常求助

React应用gh-pages部署后页面空白的解决办法

核心排查与修复步骤

1. 补全/修正package.json的homepage配置

gh-pages部署依赖正确的homepage字段,必须匹配你的GitHub Pages访问路径:

  • 若为用户主页仓库(仓库名是<你的用户名>.github.io),设为"homepage": "https://<用户名>.github.io/"
  • 若为普通项目仓库,设为"homepage": "https://<用户名>.github.io/<仓库名>/"
  • 也可使用相对路径"homepage": "./"适配所有场景

示例配置片段:

{
  "homepage": "https://yourname.github.io/portfolio/",
  "scripts": {
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  }
}

配置完成后重新执行npm run deploy。

2. 调整路由配置(若使用React Router)

GitHub Pages不支持前端路由的直接访问与刷新,必须将BrowserRouter替换为HashRouter:

// index.js中修改路由导入与使用
import { HashRouter as Router } from 'react-router-dom';

ReactDOM.createRoot(document.getElementById('root')).render(
  <Router>
    <App />
  </Router>
);

3. 检查build产物的资源路径

执行npm run build后,打开build/index.html,确认所有js、css资源路径为相对路径(如./static/js/main.xxx.js)。如果是绝对路径(/static/js/...),说明homepage配置错误,修正后重新build部署。

4. 验证部署分支与内容

登录GitHub仓库,切换到gh-pages分支,确认该分支下的文件是build文件夹的完整内容,没有遗漏或上传错误。

5. 强制刷新浏览器缓存

按Ctrl+Shift+R强制刷新页面,或使用无痕模式访问,排除旧缓存导致的空白问题。

针对你的代码文件的额外检查点

  • index.html:确保<div id="root"></div>存在且未被修改,无额外阻塞渲染的代码
  • App.js:确认组件正确导出(export default App;),build过程无报错(查看终端输出日志)
  • index.js:确认React挂载逻辑正确,React 18需使用createRoot,避免旧版render写法的隐性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:57:15