在新部署 firebase 托管时强制清除用户浏览器上的缓存

Force cache clearance on user browser upon new deploy firebase hosting

我在前端脚本中使用了 create-react-app,在部署中使用了 firebase 托管。每次我更新 CSS 和其他 HTML 并将它们部署到主机时,更改不会反映在域中,除非我强制清除缓存。如何在每次部署到主机时自动清除浏览器上的缓存?

缓存发生在您的浏览器中,浏览器通常根据 caching headers that you tell Firebase Hosting to send back 执行此操作。如果您将这些 headers 设置得太短,您将最终重新加载未修改的文件,从而浪费您和您的用户的带宽。如果您将 headers 设置得太长,用户最终可能会看到陈旧的内容,正如您所发现的那样。

您可以:

  • 找到用户看到最新内容和最小化带宽使用的良好中间地带。
  • 告诉您的用户在发生更改时重新加载页面。
  • 应用某种形式的 fingerprinting on your URLs,这意味着内容生成唯一 URL,因此新内容将在新的 URL.
  • 下提供
  • 将您的应用程序变成 PWA,这样您就可以完全控制从缓存加载哪些内容以及从网络加载哪些内容。参见 When and how does a PWA update itself?