Flutter Web部署Firebase后直接访问路由报404,路由导航正常
解决Flutter Web + Beamer部署Firebase后路由直接访问404问题
问题核心是Firebase Hosting默认不会将子路由请求转发给Flutter单页应用,而是尝试查找对应的静态文件,找不到就返回404。以下是修复步骤:
- 配置Firebase Hosting路由重写
在项目根目录的firebase.json文件中添加rewrites规则,将所有请求重定向到index.html,让Beamer处理前端路由:
{ "hosting": { "public": "build/web", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }
- 确认
public字段指向你的Flutter Web构建目录,默认是build/web - 如果没有
firebase.json,可以通过firebase init hosting命令生成,生成时选择对应的项目并指定构建目录
- 重新部署到Firebase
执行部署命令:
firebase deploy --only hosting
完成后,直接访问子路由或刷新页面时,Firebase会将请求转发到index.html,由Beamer解析路由并渲染对应页面。
内容的提问来源于stack exchange,提问作者Ben Groll
相关产品推荐
相关产品推荐

