以下是我的服务工作者的代码。对于安装部分,它将缓存我的静态文件,但问题出在获取期间。它甚至不会触发fetch事件。
我在缓存存储中检查了它是否存储了文件
请帮忙。谢谢
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/dist/js/service-worker.js')
.then(function(registration){
console.log('Service Worker Registered',registration);
})
.catch(function(err){
console.log('Service Worker Failed to Registered',err);
});
}
file: /dist/js/service-worker.js
var CACHE_NAME = 'ams-v2';
var urlsToCache = [
'/dist/css/style.css',
'//mgcrea.github.io/angular-strap/styles/libs.min.css',
'/dist/js/vendor.min.js',
'/dist/js/coreCash.min.js',
'/dist/js/amsv2Cash.min.js'
];
self.addEventListener('install', function(event) {
// Perform install steps
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('Opened cache');
return cache.addAll(urlsToCache);
})
.catch(function(err) {
console.log('Service Worker Failed to Cache', err);
})
);
});
self.addEventListener('fetch', function(event) {
console.log('fetch triggered here',event);
event.respondWith(
caches.match(event.request)
.then(function(response) {
// Cache hit - return response
if (response) {
console.log('Service Worker hit cache', response);
return response;
}
return fetch(event.request);
})
);
});

在fetch事件中,我甚至在其上添加了console.log以查看是否发生了提取但是日志没有发生。我想知道为什么。起初我认为它在范围内。但是范围在/ dist / js /我的静态文件所在的目录中。我真的不明白为什么它不会发生。