2017-10-07 8 views
0

エラーなしでservice-workers.jsを正常に登録しました。オフラインで作業するのに必要なすべてのファイルがcacheに格納されています。私はそれが200に応えるだろうかどうかを確認しようとすると ただし、オフライン、 It fails!サービスワーカーがオフラインで作業していません

はここでは、コードのとき:

//Delete Old Cache 
caches.delete('[v0.1.0]'); 

//Latest CACHE_NAME 
var CACHE_NAME = '[v0.1.1] Portfolio (ATB00ker)'; 

//Files to be Cached 
var urlsToCache = [ 
    '../../../index.html', 
    '../jquery-3.2.1.slim.min.js', 
    '../owl.carousel.min.js', 
    '../scrollreveal.min.js', 
    '../../images/bg-creator.webp', 
    '../../images/icon/facebook.svg', 
    '../../images/icon/telegram.svg', 
    '../../images/icon/gmail.svg', 
    '../../images/icon/github.webp' 
]; 


self.addEventListener('install', function(event) { 
    // Perform install steps 
    event.waitUntil(
    caches.open(CACHE_NAME) 
     .then(function(cache) { 
     return cache.addAll(urlsToCache); 
     }) 
); 
}); 


self.addEventListener('fetch', event => { 
    event.respondWith(
    caches.match(event.request, {ignoreSearch:true}).then(response => { 
     return response || fetch(event.request); 
    }) 
); 
}); 
+0

[サービス雇用者をサイトに登録する](https://developers.google.com/web/fundamentals/codelabs/offline/#register_a_service_worker_on_the_site)の指示に従って、オフラインサポートをアプリに追加しましたか? – noogui

答えて

0

私の場合の問題は、私が "assets/js/user"にservice-worker.jsを置いたことです。ルートディレクトリに移動したときに "/"うまくいったのです!

0

あなたがオフラインのために食料調達していないようです。表示するオフラインページにサービスワーカーを誘導する必要があります。

self.addEventListener('fetch', function (event) { 
    console.log('Handling fetch event for', event.request.url); 

    event.respondWith(   
     caches.match(event.request).then(function (response) { 
      if (response) { 
       console.log('Found response in cache:', response); 

       return response; 
      } 

      console.log('No response found in cache. About to fetch from network...'); 

      return fetch(event.request).then(function (response) { 
       console.log('Response from network is:', response); 

       return response; 
      }).catch(function (error) {      
       console.error('Fetching failed:', error); 

       return caches.match(OFFLINE_URL); 
      }); 
     }) 
    ); 
}); 

また、thisをご覧になることもできます。

2

オフラインでキャッシュされた/index.htmlがありますが、テストするには/にアクセスしています。それらは2つの異なるパスであり、訪問したいものをオフラインでキャッシュする必要があります。

関連する問題