情况:在 mywebsite.com/game 上,我注册了一个 service-workernavigator.serviceWorker.register('/service-worker.js', {scope: "/"});在我的服务器上,'/service-worker.js'maxAge 为1d.问题:service-worker.js有一个重大错误。它总是显示一个空页面并且无法获取任何内容。service-worker.js必须改变。问题是每当用户转到 时mywebsite.com/game,它会显示空页面并且什么也不做。我无法让客户端获取新的service-worker.js.我怎样才能让客户端获取新的service-worker.js?
2 回答

杨__羊羊
TA贡献1943条经验 获得超7个赞
您所描述的——检查更新——/service-worker.js
在本文所述的情况下默认自动发生:
如果发生以下任一情况,将触发更新:
到范围内页面的导航。
推送和同步等功能事件,除非在过去 24 小时内进行了更新检查。
.register()
仅在 Service Worker URL 已更改时调用。但是,您应该避免更改工作程序 URL。
所有现代 Web 浏览器都会忽略Cache-Control
您/service-worker.js
默认设置的任何标头,并直接针对 Web 服务器获取最新副本。
如果您希望它的行为类似于“终止开关”,则此Stack Overflow 答案针对修订后的service-worker.js
文件应包含的内容提供了一些最佳实践。

ITMISS
TA贡献1871条经验 获得超8个赞
只需像这样将 ?v=1 添加到您的脚本中。
navigator.serviceWorker.register('/service-worker.js?v=1', {scope: "/"});
并在更改 Service Worker 的脚本时增加脚本版本的数量
添加回答
举报
0/150
提交
取消