Служебный работник непослушный в обещании не уверен, где - PullRequest
0 голосов
/ 28 августа 2018

Сначала я создаю свое веб-приложение в автономном режиме на основе этого видео:

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

И выдает это сообщение об ошибке после , когда работник службы успешно зарегистрирован (на основе console.log во время начальной фазы установки моего основного файла javascript), в строке 1 моего файла работника службы. Как видите, первая строка - это просто я, объявляющая постоянную переменную. Я пытался поставить блок try catch вокруг всего, что мог придумать, но все равно получаю неперехваченную ошибку.

Как лучше отследить эту ошибку?

- РЕДАКТИРОВАТЬ -

Таким образом, я отследил ошибку несколько. Основано на последнем ответе на этот вопрос: Uncaught (в обещании) TypeError: Запрос не выполнен
Я тщательно изучил все URL в массиве FILES_TO_CACHE и отследил проблему до страницы /error/404.html. Я не могу понять, что не так, потому что я прошел три раза и проверил, существует ли файл, есть ли в нем что-то, и что у меня правильный путь.

Есть мысли ???

...