删除从缓存加载整个网站的 Service Worker

问题描述 投票:0回答:1

我为客户开发了一个新网站,之前的网站在同一域上运行。我部署了该站点并发现 www.子域名仍然显示以前的网站,我后来(经过一些头痛😁)发现这是因为以前的网站注册了一个服务工作者,该服务工作者正在从缓存加载整个网站(除了一些动态json数据)。

现在我的问题是……你到底如何解决这个僵局。 当然,我可以从本地浏览器手动取消注册工作人员。但是如何为部署前访问该站点的随机用户执行此操作。当此类用户访问 www. subdom,它甚至没有触及我的服务器。通过裸二级域访问该网站工作正常,但我不能从那里更改子域的工作人员。

javascript caching subdomain service-worker browser-cache
1个回答
0
投票

不一定是通用/简单的方法...但是...

首要任务应该是尝试用自己的软件替换软件,但这没有任何作用。只需找出提供 SW 的 url 并在该位置放置一个空文件即可。

但这可能行不通,因为软件注册代码可能隐藏在某些“源已更改?”后面。检查一下,这就是我的情况。

因此,在这种情况下,第二件事就是欺骗代码,使其认为某些内容发生了变化并且应该重新加载。就我而言,我已识别出

app-data.json
,其中包含
webpackCompilationHash
。因此,在提供带有随机哈希的假文件后,浏览器最终注册了我的虚拟软件,并且网站在下次刷新时正确加载。

© www.soinside.com 2019 - 2024. All rights reserved.