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

React BrowserRouter路由在Firebase部署后/route/:id无法加载问题

问题原因及解决办法
  • firebase.json配置结构错误
    你大概率是把重写规则直接放在了hosting根节点下,而非rewrites数组内。正确的配置结构应该是:

    {
      "hosting": {
        "public": "build",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "rewrites": [
          {
            "source": "**",
            "destination": "/index.html"
          }
        ]
      }
    }
    

    重点确认rewrites数组是否存在,规则是否在数组中,同时public字段必须指向打包后的build文件夹。

  • 未正确打包或部署了错误目录
    部署前必须先执行npm run build生成生产环境代码,且要确保Firebase部署的是build目录下的内容。如果直接部署开发源码目录,动态路由加载时会找不到正确的静态资源,导致页面空白。

  • 资源路径不匹配
    如果应用部署在域名的子路径下(比如xxx.web.app/my-app),需要给BrowserRouter添加basename属性:

    <BrowserRouter basename="/my-app">
      {/* 你的路由配置 */}
    </BrowserRouter>
    

    也可以在package.json中添加"homepage": ".",让打包后的资源路径变为相对路径,避免绝对路径导致的资源加载失败。

  • 缓存残留问题
    有时Firebase Hosting会缓存旧的配置或资源,部署后可以在Firebase控制台的Hosting页面点击「清除缓存」,或者执行firebase deploy --only hosting重新部署一次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:43:13