Старый файл service-worker.js не обновляется новым файлом sw.js - PullRequest
0 голосов
/ 22 мая 2019

На старом сайте был сервисный работник с именем service-worker.js, теперь я использую GatsbyJS gatsby-plugin-offline и автоматически создаю sw.js. Проблема в том, что новый sw.js не обновляет сайт, он устанавливает, но не заменяет старый.

Есть ли способ исправить это поведение?

Я читал о self.skipWaiting (), но плагин Gatsby уже использует skipWaiting ().

1 Ответ

0 голосов
/ 23 мая 2019

Я нашел решение после этого ответа 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файл сейчас единственный.

...