Firebase Hosting根路径报Site not found 仅/index.html可访问
问题原因
访问根路径返回Site not found但/index.html可正常访问,核心原因通常是两点:
- 配置未显式声明根路径默认索引文件,全量重写规则与Firebase Hosting默认路由逻辑产生优先级冲突
- 首次部署错误/空内容时,根路径的错误响应被Firebase CDN缓存,新部署后缓存未自动失效
修复步骤
1. 调整firebase.json配置
根据你的站点类型选择对应的配置,核心是显式声明默认首页,避免规则冲突:
纯静态站点(无前端路由)
如果是普通静态页面、不需要前端路由支持,直接删除冗余的重写规则即可,Firebase Hosting默认会自动映射静态路径,显式指定index字段避免默认值异常:
{ "database": { "rules": "database.rules.json" }, "hosting": { "public": "dist", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "index": "index.html" } }
SPA单页应用(需前端路由支持)
如果是React/Vue等单页应用、需要所有路径指向index.html由前端路由处理,保留重写规则的同时显式声明索引,可开启cleanUrls自动去掉路径中的.html后缀:
{ "database": { "rules": "database.rules.json" }, "hosting": { "public": "dist", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "index": "index.html", "cleanUrls": true, "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }
注意:如果你的Firebase项目下创建了多个Hosting站点,需要在hosting配置中额外添加
"site": "你的实际站点ID"字段,避免部署到错误站点导致访问异常。
2. 强制刷新CDN缓存重新部署
配置修改完成后,执行带强制缓存刷新参数的部署命令,清除CDN上缓存的旧错误响应:
firebase deploy --only hosting --force
3. 验证结果
部署完成后,使用浏览器无痕模式访问根地址验证即可。如果仍短暂显示错误,等待5-10分钟让全球CDN节点完成配置同步即可,不需要额外调整。
内容的提问来源于stack exchange,提问作者Jack Murrow
相关产品推荐
相关产品推荐

