Работник службы запросил только один раз - PullRequest
0 голосов
/ 07 июля 2019

Я регистрирую сервисного работника для моего многостраничного веб-приложения. Он запрашивается только в первый раз, любые новые страницы запрашивают или обновляет, он не запрашивает файл сервисного работника снова, что означает, что код не выполняется,Я не смог кэшировать свои ресурсы.

Среда: Backend: сервер WCS webspere.

URL работника службы: /wcs/service-worker.js

Структура каталогов: /webContent/service-worker.js

ПРИМЕЧАНИЕ. Что касается URL-адресов, все URL-адреса являются логическими, они не соответствуют физической структуре.Префикс URL всех моих страниц: / wcs /

Ожидание: Каждый раз, когда я открываю веб-сайт, я получаю это сообщение в консоли:

Yay!Рабочее окно загружено 101

Текущее поведение: оно просто показывает сообщение в первый раз (то есть при регистрации)

Код для регистрации:

if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
  navigator.serviceWorker.register('/wcs/service-worker.js')
    .then(registration => {
      console.log(`Service Worker registered!`, registration.scope);
    })
    .catch(err => {
      console.log(`Service Worker registration failed: ${err}`);
    });
});


}

сервер-рабочий.js

importScripts('https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js');

if (workbox) {
  console.log(`Yay! Workbox is loaded ?`);
  workbox.routing.registerRoute(
      /\.js$/,
      new workbox.strategies.NetworkFirst()
    );

} else {
  console.log(`Boo! Workbox didn't load ?`);
}

приложил образец HTTP-запроса для работника службы. Как заголовок Referer совпадает с запрашиваемым URL-адресом, который является файлом работника службы.

Service worker request

...