新的sw.js文件未更新旧的service-worker.js

时间:2019-05-22 17:46:56

标签: service-worker gatsby

一个旧站点有一个名为service-worker.js的服务工作者,现在我正在使用GatsbyJS gatsby-plugin-offline并自动创建sw.js。问题在于新的sw.js不会更新该站点,它会安装但不会代替旧的站点。

是否可以解决此问题?

我了解了self.skipWaiting(),但Gatsby插件已经使用过skipWaiting()。

1 个答案:

答案 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文件是目前唯一的文件。