Работник сервиса работает локально, но не регистрируется после размещения моего сайта - PullRequest
0 голосов
/ 22 февраля 2019

Сервисный работник работает локально на моем веб-сайте, когда я развернул его на firebase для целей тестирования, он тоже работал нормально, но когда я размещал свой сайт с помощью cPanel на своем домене, сервисный работник не регистрируется.Пожалуйста, помогите мне решить эту проблему.Прикрепленный код и снимки экрана здесь.

файл index.html

<script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker
      .register('./sw.js')
      .then(() => console.log('Service worker Registered'))
      .catch(error => console.log('some error occurred', error));
  }
</script>

файл sw.js

self.addEventListener('install', function(event) { 
          event.waitUntil(preLoad());
      });

var preLoad = function() {
   console.log('Install Event processing');
   return caches.open('app-cache-1').then(function(cache) {
     console.log('Cached index and offline page during Install');
      return cache.addAll([
        './css/main.css',
       './css/materialize.min.css',
       './img/icons/icon-72x72.png',
       './img/icons/icon-96x96.png',
       './img/icons/icon-128x128.png',
       './img/icons/icon-144x144.png',
       './img/icons/icon-152x152.png',
       './img/icons/icon-192x192.png',
       './img/icons/icon-384x384.png',
       './img/icons/icon-512x512.png',
       './img/background-image.jpeg',
       './img/favicon.jpeg',
       './img/pp1 (2).jpeg',
       './img/pv1.jpeg',
       './img/pv10.jpg',
       './img/pv11.jpg',
       './img/pv12.jpg',
       './img/pv13.jpeg',
       './img/pv-1.jpeg',
       './img/pv-2.jpeg',
       './img/pv-3.jpeg',
       './img/pv-4.jpeg',
       './img/pv-5.jpeg',
       './js/app.js',
       './js/materialize.min.js',
       './'
     ]);
   });
};

self.addEventListener('fetch', function(event) {
 console.log('The service worker is providing the asset.');
   event.respondWith(
   checkResponse(event.request).catch(function() {
  return returnFromCache(event.request);
   })
  );
   event.waitUntil(addToCache(event.request));
  });

var checkResponse = function(request) {
  return new Promise(function(fulfill, reject) {
    fetch(request).then(function(response) {
      if (response.status !== 404) {
        fulfill(response);
      } else {
        reject();
      }
    }, reject);
  });
};

var addToCache = function(request) {
  return caches.open('app-cache-1').then(function(cache) {
  return fetch(request).then(function(response) {
  console.log('Add page to offline' + response.url);
  return cache.put(request, response);
   });
 });
};

  var returnFromCache = function(request) {
  return caches.open('app-cache-1').then(function(cache) {
  return cache.match(request).then(function(matching) {
  if (!matching || matching.status == 404) {
    return cache.match('offline.html');
  } else {
    return matching;
  }
   });
 });
};

Снимки экрана работника Сервиса и кеша при локальном запуске сайта

Зарегистрированный работник службы

Кэш

...