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

Firebase重写路由至Cloud Run容器返回「未找到」页面问题排查

Firebase Hosting重写Cloud Run路由显示「not found」的排查方案

以下是几种常见的遗漏配置或错误点,按优先级排查:

  • 区域不匹配
    Firebase Hosting重写Cloud Run时,必须指定与Cloud Run服务一致的区域,否则会无法正确路由。在firebase.json的重写规则中添加region字段:

    "rewrites": [
      {
        "source": "/your-path/**",
        "run": {
          "serviceId": "your-cloudrun-service-name",
          "region": "us-central1" // 替换为你的Cloud Run实际区域
        }
      }
    ]
    
  • 路径匹配规则错误

    • 如果需要匹配子路径,必须在source末尾加上/**,比如/api/**而非/api,否则仅精确匹配根路径,子路径会返回404。
    • 检查是否存在规则冲突:如果有多个重写规则,靠前的规则优先级更高,确保Cloud Run的规则不会被其他规则(比如静态文件、Function规则)提前匹配。
  • 请求路径转发不匹配
    Firebase Hosting会将完整的请求路径转发给Cloud Run。例如重写规则是/api/**,请求/api/users会被转发到Cloud Run的/api/users路径,而非/users。如果你的Cloud Run服务仅处理/users,就会返回404。解决方法是添加path字段重写路径:

    "rewrites": [
      {
        "source": "/api/**",
        "run": {
          "serviceId": "your-cloudrun-service-name",
          "region": "us-central1",
          "path": "/{wildcard}" // 将/api/*映射为Cloud Run的/*
        }
      }
    ]
    
  • 权限配置缺失
    确保Firebase Hosting的服务账号拥有Cloud Run的调用权限:

    1. 找到项目的Hosting服务账号,格式为[项目ID]@appspot.gserviceaccount.com
    2. 进入Cloud Run控制台的服务权限页面,添加该账号并授予Cloud Run Invoker角色
  • 配置语法错误
    检查firebase.json的JSON语法是否正确,比如是否遗漏逗号、字段拼写错误(如serviceId写成小写serviceid)。确保run对象的结构嵌套正确。

  • 未重新部署配置
    修改firebase.json后,必须重新部署Hosting才能生效:

    firebase deploy --only hosting
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:00:06