WordPress 용 서비스 작업자를 만들고 있습니다. sw.js 파일에 캐시 할 파일 목록을 정의하고 있지만 페이지를 새로 고칠 때 WordPress가 많은 추가 파일을로드하는 것으로 보입니다.WordPress에 서비스 작업자를 추가하고 있지만 WordPress 파일을 캐시에 추가하는 것을 막을 수는 없습니다
이것은 일반적으로 문제가되지 않지만 콘텐츠를 편집하는 사용자를 중지시키는 일부 관리 파일이 캐시되고 있음을 의미합니다.
다음은 코드입니다. sw.js 파일은 Wordpress의 루트에 있습니다. 'test.css'라는 파일은 테스트 목적으로 루트에 있습니다.
도움이되었습니다.
스티브
(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);
}
})
);
})
);
});
})();
정말 고마워요. 위의 링크에는 훌륭한 정보가있었습니다. 문제는 가져 오기 기능과 관련이 있습니다. –