服务工作人员离线 - 管理不工作

时间:2018-04-04 18:11:13

标签: javascript service-worker

我将服务工作者安装到我的网站。我有Front和Admin模块。在前面添加像这样的服务工作者

 if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('serviceworker.js', {
            scope: './'
        });
    }

像这样的服务工作者

 'use strict';

 var cacheVersion = 1;
 var currentCache = {
   offline: 'offline-cache' + cacheVersion
 };
 const offlineUrl = '/offline';

 this.addEventListener('install', event => {
   event.waitUntil(
     caches.open(currentCache.offline).then(function(cache) {
       return cache.addAll([
         '/assets/base/images/404-parallax.png',
         offlineUrl
       ]);
     })
   );
 });

 this.addEventListener('fetch', event => {
   // request.mode = navigate isn't supported in all browsers
   // so include a check for Accept: text/html header.
   if (event.request.mode === 'navigate' || (event.request.method === 'GET' && event.request.headers.get('accept').includes('text/html'))) {
     event.respondWith(
       fetch(event.request.url).catch(error => {
         // Return the offline page
         return caches.match(offlineUrl);
       })
     );
   } else {
     // Respond with everything else if we can
     event.respondWith(caches.match(event.request)
       .then(function(response) {
         return response || fetch(event.request);
       })
     );
   }
 });

离线页面是example.com/offline

前端看起来不错,但是如果我想去管理example.com/administration我已经获得了ERR_FAILED并且在控制台中是"https://www.example.com/administration/" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow".

但是如果我打开DevTools然后按ctrl + shift + R然后页面就可以了。但是,如果我没有打开DevTools它就无法正常工作。

我真的很困惑。也许是服务工作者的范围有些问题,但我尝试了许多选择,但仍然没有工作。

0 个答案:

没有答案