未承诺的服务人员不确定在哪里

时间:2018-08-28 18:27:41

标签: javascript service-worker progressive-web-apps

我首先根据以下视频离线构建Web应用:

https://www.youtube.com/watch?v=cmGr0RszHc8

而且我与服务人员碰到了麻烦。这是我的sw.js代码:

const FILES_TO_CACHE = [
"/js/app.js", 
"/js/authenticate.js", 
"/js/forms.js", 
"/js/head-scripts.js", 
"/js/remember.js", 
"/js/style.js", 
"/style/style.css", 
"/index.html", 
"/tracker/index.html", 
"/assets/LongShineLogo.png", 
"/assets/shineSolarLogo.png", 
"/assets/ShineSunburst.png",
"/error/404.html",
"https://fonts.googleapis.com/css?family=Roboto",
"https://use.fontawesome.com/releases/v5.2.0/css/all.css"
];

const CACHE_NAME = "static-cache-v1";

// Caching files in the cache
self.addEventListener("install", event => {
    event.waitUntil(
        caches.open(CACHE_NAME)
        .then(function(cache) {
            return cache.addAll(FILES_TO_CACHE)
        })
    );
});

self.addEventListener("fetch", event => {

    // Getting URL
    const url = new URL(event.request.url);

    // Responding from cache if possible. If not, respond with the network or other cached content
    if (url.origin === location.origin && url.pathname === "/") {
        event.respondWith(caches.match("/index.html"));
        return;
    } else if (url.pathname === "/tracker/") {
        event.respondWith(caches.match("/tracker/index.html"));
        return;
    } else {
        event.respondWith(caches.match("/error/404.html"));
    }

    event.respondWith(
        caches.match(event.request)
        .then(response => response || fetch(event.request))
    );

});

我收到的错误消息是:

Uncaught (in promise) TypeError: Request failed

在服务的第1行上,成功地注册了服务工作者(基于console.log,这是在我的主要javascript文件的初始安装阶段之后),并抛出了错误消息 工作文件。如您所见,第一行就是我声明常量变量。我尝试过在所有可以想到的地方放置try catch块,但仍然遇到未捕获的错误。

如何更好地跟踪此错误?

-编辑-

因此,我已在某种程度上找到了错误。基于对该问题的倒数第二个答案:Uncaught (in promise) TypeError: Request failed
我辛苦地浏览了FILES_TO_CACHE数组中的每个URL,并将问题一直跟踪到/error/404.html页面。我无法弄清楚出了什么问题,因为我已经检查了三遍,并检查了文件是否存在,文件中是否包含某些内容以及路径是否正确。

有什么想法吗?

0 个答案:

没有答案