微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

离线时 start_url 不响应 200

如何解决离线时 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?