WordPressのインストール用にサービスワーカーを作成しています。 sw.jsファイルにキャッシュするファイルのリストを定義していますが、ページを更新するとWordPressが多くの追加ファイルを読み込んでいるようです。WordPressにサービスワーカーを追加していますが、Wordpressファイルをキャッシュに追加するのをやめることはできません。
これは通常問題ではありませんが、コンテンツの編集を中止しているadminファイルの一部がキャッシュされていることを意味します。
ここにコードがあります。 sw.jsファイルはWordpressのルートにあります。 'test.css'という名前のファイルも、テスト目的でルートにあります。
何か助けてください!
-Steve
(function() {
'use strict';
var filesToCache = [
'test.css'
];
var staticCacheName = 'pages-cache-v1.0.1';
self.addEventListener('install', function(event) {
console.log('Attempting to install service worker and cache static assets');
event.waitUntil(
caches.open(staticCacheName)
.then(function(cache) {
console.log(filesToCache);
return cache.addAll(filesToCache);
})
);
});
self.addEventListener('fetch', function(event) {
//console.log('Fetch event for ', event.request.url);
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
//console.log('Found ', event.request.url, ' in cache');
return response;
}
//console.log('Network request for ', event.request.url);
return fetch(event.request).then(function(response) {
return caches.open(staticCacheName).then(function(cache) {
if (event.request.url.indexOf('test') < 0) {
cache.put(event.request.url, response.clone());
}
return response;
});
});
}).catch(function(error) {
console.log('Error, ', error);
})
);
});
self.addEventListener('activate', function(event) {
//console.log('Activating new service worker...');
var cacheWhitelist = [staticCacheName];
event.waitUntil(
caches.keys().then(function(cacheNames) {
return Promise.all(
cacheNames.map(function(cacheName) {
console.log(cacheNames);
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
})
);
})
);
});
})();
ありがとうございました。上記のリンクには素晴らしい情報がありました。問題はfetch関数と関係していました。 –