已配置重写规则,Firebase Hosting部署后React Router路由仍报404
解决React Router部署Firebase Hosting后刷新/直接访问路由404的问题
检查firebase.json配置是否正确
确保你的firebase.json里的hosting配置包含正确的重写规则,且public字段指向React构建后的目录(默认是build)。正确配置示例:{ "hosting": { "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }注意:
rewrites数组必须放在hosting对象内,source设为**才能匹配所有请求,确保都转发到index.html。重新构建并部署最新版本
先运行npm run build(或yarn build)生成最新的生产构建文件,再执行firebase deploy --only hosting完成部署。避免直接部署旧的build目录,导致配置未更新。清除Firebase Hosting缓存
缓存可能导致旧的路由规则生效,你可以:- 登录Firebase控制台,进入Hosting页面,点击右上角的「清除缓存」按钮
- 或者部署时添加
--force参数强制刷新:firebase deploy --only hosting --force
确认React Router的路由模式
确保你使用的是BrowserRouter(而非HashRouter),且路由路径配置无错误,比如不要在路径开头添加多余斜杠或错误的路径结构。检查自定义域名配置(若有)
如果绑定了自定义域名,确认域名已完成验证、SSL证书生效。部分情况下,域名解析或证书问题也会引发路由访问异常。
内容的提问来源于stack exchange,提问作者Christer Bendixen
相关产品推荐
相关产品推荐

