Firebase Hosting无法部署文件:静态资源加载异常求助
Firebase部署后CSS/JS/图片加载失败,资源被替换为index.html的排查方案
核心问题拆解
控制台报Unexpected token '<'是因为浏览器请求静态资源时,服务器返回的是index.html的HTML代码——这直接说明请求被错误路由到了首页,而非目标资源。结合旧项目还原后也失效的情况,问题大概率出在Firebase的部署缓存、CLI配置或线上CDN层面,而非本地文件本身。
具体解决步骤
清理部署缓存(本地+线上)
- 本地重置Firebase CLI会话:执行
firebase logout,再firebase login重新登录; - 删除本地项目根目录下的
.firebase缓存文件夹; - 登录Firebase控制台,进入Hosting页面,找到「清除缓存」按钮,手动清理CDN缓存;
- 重新执行
firebase deploy。
- 本地重置Firebase CLI会话:执行
检查并修正firebase.json重写规则
单页应用常用的重写规则(将所有请求导向index.html)如果配置不当,会把静态资源也一并路由到首页。打开firebase.json,确保重写规则排除你的资源路径:"hosting": { "public": "public", // 确认这里是你的静态资源根目录 "rewrites": [ { "source": "!*.{css,js,png,jpg,gif,svg}", // 排除所有静态资源后缀 "destination": "/index.html" } ] }如果你的资源放在特定子目录(比如
/assets/),可以把规则改成"source": "!/assets/**"来排除整个目录。验证部署文件完整性
- 先确认本地
public目录下的CSS/JS/图片完整且路径正确; - 用debug模式部署,查看详细上传日志:
firebase deploy --debug,检查是否有文件上传失败或被跳过的记录; - 登录Firebase控制台的Hosting「文件」页面,直接查看线上的CSS/JS文件内容,确认是否真的被index.html覆盖。如果是,尝试更新Firebase CLI到最新版:
npm install -g firebase-tools,再重新部署。
- 先确认本地
重置Hosting站点配置
如果以上方法都无效,直接在Firebase控制台删除当前Hosting站点,然后在本地重新执行firebase init hosting,重新关联项目、配置静态目录和重写规则,再上传文件。
内容的提问来源于stack exchange,提问作者Alexander García
相关产品推荐
相关产品推荐

