我使用sw.js中的以下代码已经有一段时间了。
var cacheName = 'myCache';
var filesToCache = [
'/',
'build/css/stylesheet.css',
'build/js/bundle-min.js'
];
self.addEventListener('install', function(e) {
console.log('[ServiceWorker] Install');
e.waitUntil(
caches.open(cacheName).then(function(cache) {
console.log('[ServiceWorker] Caching app shell');
return cache.addAll(filesToCache);
})
);
});
self.addEventListener('activate', function(e) {
console.log('[ServiceWorker] Activate');
e.waitUntil(
caches.keys().then(function(keyList) {
return Promise.all(keyList.map(function(key) {
if (key !== cacheName) {
console.log('[ServiceWorker] Removing old cache', key);
return caches.delete(key);
}
}));
})
);
return self.clients.claim();
});
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
以下代码段的问题是,一旦我将文件添加到filesToCache Array(Precache),就像我的“ /”路由Web应用程序的主页一样,除非我进行硬刷新,否则主页内容的任何更改都不会反映出来?
我需要在预缓存中添加“ /”路由以及捆绑的CSS,JS文件,因为需要对我的主页进行快速/离线支持。 我究竟做错了什么?如何更改此行为?
预先感谢 问候