我已经成功注册了 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);
})
);
});
最佳答案
您已离线缓存 /index.html
,但您正在访问 /
以对其进行测试。这是两条不同的路径,您必须离线缓存要访问的路径。
关于服务 worker 不离线工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46624020/