Firebase Hosting自定义域名提示“Site Not Found”问题求助
以下是针对你的情况的排查和解决步骤:
调整CloudFlare代理模式:把CloudFlare中对应域名的DNS记录从橙云(代理模式)改成DNS only(灰云)。Firebase Hosting需要直接解析到它的服务器IP,代理模式会拦截请求导致无法正确响应,切换后等待10-15分钟再测试。
确认Firebase项目匹配:运行
firebase projects:list查看本地CLI关联的项目,确保和你绑定自定义域名的Firebase项目一致。如果不匹配,执行firebase use <目标项目ID>切换后重新部署。检查
firebase.json配置:确保hosting字段的public路径指向正确的构建产物目录(比如React项目是build,Vue项目是dist),同时确认构建产物确实生成在该目录下。示例正确配置:{ "hosting": { "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }验证部署状态与日志:登录Firebase控制台查看Hosting的部署历史,确认最近一次部署成功。如果部署记录正常但仍报错,执行
firebase deploy --only hosting -v启动verbose模式部署,查看日志中是否有未捕获的错误。检查SSL证书状态:在Firebase控制台的域名管理页面,确认自定义域名的SSL证书已成功颁发。如果证书状态异常,删除域名重新添加以触发证书重新生成,同时CloudFlare的SSL模式建议设置为“Flexible”或“Full”。
清除本地缓存:
- Windows:运行
ipconfig /flushdns清除DNS缓存 - macOS:执行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:运行
sudo systemd-resolve --flush-caches
同时清空浏览器缓存,用无痕模式访问测试。
- Windows:运行
重新确认DNS记录:再次检查CloudFlare的DNS记录是否和Firebase提供的完全一致,重新添加域名后可能会生成新的解析记录,确保没有配置错误。
内容的提问来源于stack exchange,提问作者CuriousCat

