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

ReactJS部署Github Pages后直接输入URL访问出现404问题求助

解决React部署Github Pages后直接输入URL 404的问题

问题原因

本地开发时,React的开发服务器会把所有路由请求转发到index.html,让前端路由处理逻辑。但Github Pages是静态文件服务器,直接访问子路由(比如/summary)时,服务器会尝试寻找对应路径的静态文件,找不到就返回404——而单页应用的所有路由逻辑都封装在index.html里。

解决步骤

1. 确认package.json配置

先确保package.json里已设置正确的homepage字段,值对应你的Github Pages项目地址:

"homepage": "https://hayatshin.github.io/todaychungchun-admin/"

同时检查scripts中的部署命令(未配置的话补充):

"scripts": {
  // ...其他原有脚本
  "predeploy": "npm run build",
  "deploy": "gh-pages -d build"
}

2. 创建404.html文件

在项目的public文件夹下,复制一份index.html并重命名为404.html。当Github Pages找不到对应路径的文件时,会返回这个404.html,此时React的前端路由就能接管请求,解析对应路由并渲染页面。

3. 重新部署项目

运行部署命令重新推送到Github Pages:

npm run deploy

备选方案:改用HashRouter

如果不想额外配置404.html,可以把BrowserRouter换成HashRouter,路由会带上#(比如https://hayatshin.github.io/todaychungchun-admin/#/summary),这种方式下所有请求都会指向根路径的index.html,不会触发服务器404。修改路由配置:

import { HashRouter as Router, Routes, Route } from 'react-router-dom';

// 后续保持原路由结构即可
<Router basename={process.env.PUBLIC_URL}>
  <Routes>
    {/* 你的路由配置 */}
  </Routes>
</Router>

缺点是URL会多一个#,但配置更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:13:15