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

Firebase静态托管网站显示‘Site Not Found’问题排查与解决求助

Firebase Hosting 站点异常及重定向配置问题解答

问题1:部署后出现「Site Not Found」的原因及修复方案

错误原因

你在rewrites配置中错误使用了type: "302"字段。Firebase Hosting的rewrites用于内部重写(不对外发送跳转响应),仅支持dynamic/static等类型;而302是HTTP临时重定向的状态码,属于redirects配置的专属字段。无效的配置会导致Firebase无法正确解析部署规则,最终触发「Site Not Found」。

修复方案

将rewrites中的302重定向规则迁移到redirects数组中,删除原rewrites里的错误配置,同时简化重复的headers规则,修正后的firebase.json示例:

{
  "hosting": {
    "site": "mysite_id",
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "redirects": [
      {
        "source": "/report/doc_view/**",
        "destination": "https://mynewsite.com/report/doc_view/**",
        "type": 302
      }
    ],
    "headers": [
      {
        "source": "**",
        "headers": [
          {
            "key": "Access-Control-Allow-Origin",
            "value": "*"
          }
        ]
      }
    ]
  }
}

额外检查:确保public目录存在且包含至少一个可访问文件(如index.html),空的public目录也会导致站点无法正常加载。

问题2:重写/重定向配置是否会导致「Site Not Found」及生产环境建议

配置问题判断

你修改后的配置中,rewrites数组仍保留了错误的type: "302"字段,这依旧会导致配置解析失败,触发「Site Not Found」。而redirects里的/cgi-bin/login.cgi规则是正确的,本身不会引发异常。

生产环境部署建议

  • 严格区分rewrites与redirects:
    • rewrites:用于内部路径映射(如SPA路由 fallback 到index.html),不改变浏览器URL,无需设置type为HTTP状态码。
    • redirects:用于对外发送跳转响应(301永久/302临时),必须在redirects数组中配置,并指定正确的type数值(注意是数字,如301而非字符串"301")。
  • 本地预验证:部署前用firebase serve命令本地预览,测试所有重定向/重写规则是否生效,提前排查配置错误。
  • 简化重复配置:避免重复的headers规则,source: "**"可覆盖所有路径,无需保留source: "*"。
  • 查看部署日志:部署后登录Firebase控制台,进入Hosting模块查看部署日志,若有配置错误会直接提示具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:44:53