如何解决离线时 start_url 不响应 200
我看过其他关于 this one 的主题,但我无法弄清楚如何解决我的问题。
我的离线页面工作正常,但 Lighthouse 不断抛出错误:
离线时 start_url 不响应 200 start_url 确实响应了,但不是通过 service worker。
这是我认为最关键的部分:
self.addEventListener('fetch',function (event) {
console.log("fethcing...");
var request = event.request;
// Always fetch non-GET requests from the network
if (request.method !== 'GET') {
console.log("is not GET");
event.respondWith(
fetch(request)
.catch(function () {
return caches.match('views/layouts/offline.html');
})
);
return;
}
// For HTML requests,try the network first,fall back to the cache,finally the offline page
// if (request.headers.get('Accept').indexOf('text/html') !== -1) {
// Fix for Chrome bug: https://code.google.com/p/chromium/issues/detail?id=573937
if (request.mode != 'navigate') {
request = new Request(request.url,{
method: 'GET',headers: request.headers,mode: request.mode,credentials: request.credentials,redirect: request.redirect
});
}
event.respondWith(
fetch(request)
.then(function (response) {
// Stash a copy of this page in the cache
var copy = response.clone();
console.log("fetching..." + (version + staticCacheName));
caches.open(version + staticCacheName)
.then(function (cache) {
cache.put(request,copy);
});
return response;
})
.catch(function () {
return caches.match(request)
.then(function (response) {
return response || caches.match('views/layouts/offline.html');
})
})
);
return;
});
还有here's the full service worker code。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。