Firebase 托管 - 强制浏览器在新部署时重置缓存?

Firebase hosting - force browser to reset cache on new deploys?

我有一个使用 create-react-app 构建并托管在 Firebase 托管上的网站。我可以做些什么来指定在新部署后需要更新浏览器缓存,最好只更新自上次部署以来已更改的页面、资产和样式表?

有没有办法访问部署 ID 并将其(或任何其他唯一标识符)包含在 headers 中,以便浏览器可以与本地存储或缓存中的内容进行比较,并确定是否存在硬刷新是必要的?我查看了 Firebase Deploying as well as Full config 文档,但没有提及如何访问上次部署时的托管元数据。

Cache-Control 值设置为 max-age=[any number] 似乎并不理想,因为它忽略了下一次部署的时间(除非有定期计划,否则一开始可能不知道)。

我明白了。必须根据 this Github comment:

更新 firebase.json 文件
{
  "hosting": {
    "headers": [
      { "source":"/service-worker.js", "headers": [{"key": "Cache-Control", "value": "no-cache"}] }
    ]
  }
}

请在您的 firebase.json 中设置“max-age=0”。

    "headers": [
        {
            "source": "/service-worker.js",
            "headers": [
                {
                    "key": "Cache-Control",
                    "value": "no-cache, no-store, must-revalidate"
                }
            ]
        },
        {
            "source": "**/*.@(jpg|jpeg|gif|png|svg|webp|js|css|eot|otf|ttf|ttc|woff|woff2|font.css)",
            "headers": [
                {
                    "key": "Cache-Control",
                     "value": "max-age=0"
                }
            ]
        }
    ]