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

React应用部署Firebase Hosting后页面空白问题求助

解决React应用部署Firebase Hosting后空白页面问题

问题分析

部署后页面空白、main.[hash].js返回内容与index.html一致的核心原因是Firebase重写规则覆盖了静态资源请求:当前配置中"source": "**"会让所有请求(包括JS/CSS等静态资源)都被定向到index.html,导致浏览器无法加载正确的JS代码,页面无法完成渲染。

本地运行和firebase serve正常,是因为本地服务器不会强制将静态资源请求重定向到index.html,而Firebase Hosting生产环境会严格执行重写规则。

解决方案

调整firebase.json的重写规则,先排除静态资源路径,再处理单页应用的路由重写:

修改后的firebase.json

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        // 排除静态资源路径,确保/static下的文件能正常返回
        "source": "!/static/**",
        "destination": "/index.html"
      }
    ]
  }
}

额外检查步骤

  1. 清理Firebase缓存:若部署后问题仍存在,可在Firebase控制台的Hosting页面点击「清除缓存」,强制刷新生产环境资源缓存。
  2. 确认build文件完整性:部署前检查build/static/js/和build/static/css/目录下是否存在对应哈希文件名的文件,且index.html中的引用路径与实际文件一致。
  3. 移除不必要的homepage配置:Create React App默认支持根路径部署,无需额外设置package.json中的homepage属性,多余配置反而可能引发路径问题。

验证操作

修改配置后重新执行部署:

npm run build
firebase deploy

部署完成后,打开浏览器开发者工具的「网络」面板,确认main.[hash].js的响应内容为正确的JavaScript代码,而非index.html。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:20:58