离线时 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.JdbcOdbc...