React项目部署Firebase后显示欢迎页,如何解决?附firebase.json配置
Hey,我来帮你排查这个问题!结合你的firebase.json配置和描述,大概率是以下几个环节出了问题,一步步来解决:
1. 先确认public目录配置是否正确
你的配置里public字段设为了"amazon",首先要核对两个关键点:
- 项目根目录下确实存在
amazon这个文件夹 - 这个文件夹里是React项目构建后的完整静态文件(比如
index.html、static文件夹这些)
通常React项目执行npm run build后,默认会把构建产物输出到build目录。如果你没修改过React的构建输出路径,那这里的public应该改成"build"才对——这是最常见的错误原因。
2. 确保你已经执行了构建命令
很多人会忘了在部署前构建项目!一定要先在终端运行:
npm run build
等构建完成且没有报错后,再去执行部署命令。如果跳过这一步,Firebase找不到你的页面文件,自然会显示默认欢迎页。
3. 重新部署并强制清除缓存
有时候浏览器缓存了旧的默认页,或者Firebase的CDN还没同步最新内容。你可以重新部署一次,顺便加上备注:
firebase deploy --only hosting -m "Fix default page issue"
部署完成后,打开网站时强制刷新浏览器(Windows/Linux按Ctrl+F5,Mac按Cmd+Shift+R),彻底清除缓存后再查看。
4. 检查Firebase控制台的部署记录
登录Firebase控制台,进入你的项目的Hosting页面,查看「部署历史」。如果最新一次部署上传的文件数量很少,那基本可以确定是public目录配置错了,导致Firebase没上传你的React构建文件。
5. 给单页应用加上路由重写配置(可选但推荐)
React是单页应用,直接部署可能会出现路由跳转404的问题,建议在firebase.json里加上rewrites配置,同时确保入口文件路径正确:
{ "hosting": { "public": "build", // 改成你的实际构建目录 "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }
这个配置会让所有请求都指向index.html,适配React的前端路由。
按上面的步骤排查,应该就能解决默认欢迎页的问题了!
内容的提问来源于stack exchange,提问作者RAJEEV RANJAN SINGH

