You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Hosting部署Flutter Web动态路径重写404问题

Flutter Web Firebase Hosting 重写规则正确配置

你遇到404的核心原因是Flutter Web属于单页应用,所有页面渲染逻辑都打包在index.html加载的前端脚本中,服务器上不存在/item/:idItem对应的物理文件,你之前配置的重写规则把请求转发到不存在的物理路径,自然触发404。

正确配置方式

修改firebase.json中的hosting重写规则,将/item路径下的所有请求统一转发到根目录的index.html即可,浏览器地址栏的原始路径会完整保留,不会影响前端读取路径参数:

{
  "hosting": {
    "public": "build/web",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/item/**",
        "destination": "/index.html"
      },
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

配置说明

  • 重写规则按从上到下的优先级匹配,必须把路径更精确的/item/**规则放在通用通配规则**前面,避免被通用规则提前覆盖。
  • 不需要在destination字段中携带路径参数,重写只是服务器内部把请求转发给index.html处理,用户浏览器地址栏的URL不会变化,你的Flutter代码中通过Uri.base.path或者路由框架读取路径时,可以完整获取到/item/xxx格式的路径,正常解析idItem参数渲染详情页。
  • 配置完成后执行firebase deploy --only hosting重新部署即可生效,不需要修改前端的路由判断逻辑。

内容的提问来源于stack exchange,提问作者Phobie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:45:44