Service Worker 在 Chrome Lighthouse 测试中失败,并显示“start_url 确实响应,但不是通过 Service Worker”

问题描述

我安装了一个 Service Worker,用于显示离线页面并加载此离线页面的资产。

代码如下:

self.addEventListener('fetch',event => {
    const request = event.request

    // Ignore non-GET requests
    if (request.method !== 'GET') {
        return;
    }

    if (isHTMLRequest(request)) {

        event.respondWith(

            // for http requests
            // if request fails - return the offline page
            fetch(request).catch((response) => {
                return caches.open(CACHE_NAME).then((cache) => {
                    return cache.match('/offline')
                })
            })
        )
    }

    // for not http requests - like pictures or css files
    if (!isHTMLRequest(request)) {
        event.respondWith(

            // search for cached assets like offline.png
            caches.match(request).then(response => {

                // if found - return it
                if (response) {
                    return response;
                }

                // if not - return the original request
                return fetch(request)
            })
        )
    }

})

这应该可以正常工作。但是灯塔告诉我:

enter image description here

有人可以帮忙吗? 我真的很感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)