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

Firebase App Hosting(NextJS)Cache-Control配置异常及压缩疑问

解决方案

一、修复HTTP/3下Cache-Control被覆盖的问题

Firebase App Hosting的HTTP/3(QUIC)边缘层会优先读取firebase.json的配置,而非NextJS的next.config.js头规则,这是你的缓存策略被强制改为1分钟的核心原因。直接在firebase.json中定义静态资源的缓存规则即可覆盖边缘层默认设置:

{
  "hosting": {
    "public": "out", // 对应你的NextJS构建输出目录(静态导出用out,SSR/ISR用.next)
    "headers": [
      {
        "source": "/:all*(svg|jpg|png|gif|ico|webp|jpeg|js|css|woff|woff2|ttf|otf|eot|json)",
        "headers": [
          {
            "key": "Cache-Control",
            "value": "public, max-age=31600000"
          }
        ]
      }
    ]
  }
}

二、启用Brotli压缩

Firebase App Hosting新服务默认仅开启gzip压缩,需在firebase.json中明确启用Brotli:

{
  "hosting": {
    // 保留其他已有配置
    "compression": "brotli"
  }
}

如果需要兼容不支持Brotli的老旧客户端,可设置为"compression": "auto",边缘层会自动根据请求头的Accept-Encoding选择最优压缩格式。

关键注意事项

  • 部署前执行firebase deploy --only hosting,确保配置同步到边缘节点
  • 若存在边缘缓存残留,执行firebase hosting:clear-cache清除旧规则,避免新配置不生效
  • HTTP/3边缘规则优先级高于NextJS的next.config.js,核心缓存策略必须在firebase.json中定义,NextJS的配置仅作为非H3场景的 fallback

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:40:19