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

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

解决React gh-pages部署后空白页面问题

问题背景

开发React项目时,原本遇到gh-pages默认打开Notebook组件而非Login组件的问题。将与GitHub仓库同名的Notebook组件重命名为Note后,本地运行正常,但gh-pages部署后显示空白页面。尝试过修改package.json的方案,未解决问题。

排查与解决步骤

1. 适配GitHub Pages子路径的路由配置

gh-pages部署在/notebook/子路径下,需给BrowserRouter添加basename属性:

import { BrowserRouter } from 'react-router-dom';

ReactDOM.render(
  <BrowserRouter basename="/notebook/">
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

同时确保Login组件为默认路由或设置重定向:

<Routes>
  <Route path="/" element={<Navigate to="/login" replace />} />
  <Route path="/login" element={<Login />} />
  <Route path="/note" element={<Note />} />
</Routes>

2. 排查组件重命名后的引用遗漏

全局搜索项目中所有Notebook的引用,确保全部替换为Note,包括导入语句、路由配置、Redux逻辑等。本地运行正常可能依赖缓存,但生产构建会暴露未修复的引用错误。执行npm run build后,检查build文件夹是否正常生成,有无构建报错。

3. 清理gh-pages缓存

删除本地gh-pages分支后重新部署:

git branch -D gh-pages
npm run deploy

也可在GitHub仓库的「Settings -> Pages」中,暂时切换源到其他分支再切回gh-pages,触发重新构建。

4. 升级react-scripts版本

当前使用的react-scripts@2.1.8版本较旧,可能存在兼容性问题,建议升级到稳定版本:

npm install react-scripts@5.0.1 --save

升级后重新执行npm run build和npm run deploy。

5. 查看生产环境控制台报错

部署后打开浏览器开发者工具(F12),切换到Console标签,查看是否有JS报错(如组件未找到、资源加载失败等),根据报错信息精准定位问题。

项目package.json配置

{
  "name": "notebook",
  "version": "0.1.0",
  "private": true,
  "homepage" : "https://thewizard91.github.io/notebook/",
  "dependencies": {
    "@googlemaps/react-wrapper": "^1.1.18",
    "@reduxjs/toolkit": "^1.7.1",
    "@testing-library/jest-dom": "^5.16.1",
    "@testing-library/react": "^12.1.2",
    "@testing-library/user-event": "^13.5.0",
    "babel-preset-react": "^6.24.1",
    "bootstrap": "^5.2.1",
    "firebase": "^9.9.4",
    "gulp": "^3.9.1",
    "react": "^17.0.2",
    "react-bootstrap": "^2.5.0",
    "react-dom": "^17.0.2",
    "react-redux": "^7.2.6",
    "react-router-dom": "^6.2.1",
    "react-scripts": "^2.1.8",
    "redux": "^4.1.2",
    "redux-thunk": "^2.4.1",
    "semantic-ui-css": "^2.4.1",
    "semantic-ui-react": "^2.0.4",
    "serve": "^14.2.0",
    "styled-components": "^5.3.3",
    "web-vitals": "^2.1.2"
  },
  "scripts": {
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build -b gh-pages",
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "heroku-postbuild": "npm run build"
  },
  "heroku-run-build-script": true,
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "gh-pages": "^3.2.3"
  },
  "engines": {
    "node": "16.18.1",
    "npm": "8.19.2"
  }
}

内容的提问来源于stack exchange,提问作者Emmanuel Kofy Agyapong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:07:58