一个旧站点有一个名为service-worker.js的服务工作者,现在我正在使用GatsbyJS gatsby-plugin-offline并自动创建sw.js。问题在于新的sw.js不会更新该站点,它会安装但不会代替旧的站点。
是否可以解决此问题?
我了解了self.skipWaiting(),但Gatsby插件已经使用过skipWaiting()。
答案 0 :(得分:0)
我在此答案https://stackoverflow.com/a/49772107/2517560
之后找到了解决方案将此代码添加到gatsby-browser.js
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations()
.then(function(registrations) {
for(let registration of registrations) {
if(registration.active.scriptURL == 'http://localhost/my-push/myworker.js'){ registration.unregister(); }
}
});
}
正在取消注册service-worker.js文件,sw.js文件是目前唯一的文件。