Service Worker无法更新浏览器缓存的资源

问题描述

我目前正在尝试将Service Worker添加到我们的一个应用中,以使其可以离线使用。它对我们的JavaScript和CSS文件效果很好,因为它们将构建哈希作为名称的一部分,因此在更新时,它们会更改名称并从服务器加载。

但是其他一些资源没有构建哈希,因此如果它们发生更改,我会更改服务工作者中的缓存名称。从理论上讲,它会创建一个全新的缓存,并且所有资源都应该是最新的。问题在于我们还使用HTTP缓存,因为并非应用程序的所有部分都可以脱机使用。

文件使用Cache-Control: public,max-age=86400,因此如果文件被缓存,并且在接下来的24小时之内发生更改,则用户将再次访问该站点。新的缓存已创建,但是资源是从浏览器缓存加载的,并且从未更新。

现在,我们可以只为整个站点禁用浏览器缓存,但这将意味着为不应离线使用且不使用Service Worker的应用程序部分提供缓存的好处越来越少。
我们只能对使用Service Worker的资源禁用缓存,但是由于应用程序的大小和频繁的更改,这将很容易出错,并且维护工作量过多。

有什么方法可以阻止服务工作者使用浏览器缓存或比上面提到的更好的解决方案?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)