Подтвердить что ты не робот

Служебный работник бросает ошибку сети:: ERR_FILE_EXISTS?

service-worker.js:1 GET http://localhost:8080/service-worker.js net::ERR_FILE_EXISTS

Это ошибка, которую я получаю каждый раз, когда я обновляюсь после регистрации рабочего. Я убедился, что файл service-worker.js существует в корневом каталоге. Также сервисный работник зарегистрирован и работает нормально. Но я все еще продолжаю получать эту ошибку. Также я работаю над localhost.

Это мой файл service-worker.js:

console.log("SW startup");

var CACHE_NAME = "my_cache";
var urlsToCache = [
  './',
  './css/style.css',
  './js/script.js'
];

self.addEventListener('install', function(event) {
  // Perform install steps
  event.waitUntil(
    caches.open(CACHE_NAME)
      .then(function(cache) {
        console.log('Opened cache');
        return cache.addAll(urlsToCache);
      })
  );
});

self.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.open(CACHE_NAME).then(function(cache) {
      return cache.match(event.request).then(function (response) {
        return response || fetch(event.request.clone()).then(function(response) {
          console.dir(response);
          console.log('hi');
          cache.put(event.request.clone(), response.clone());
          return response;
        });
      });
    })
  );
});

script.js файл:

if (navigator.serviceWorker) {
    console.log("ServiceWorkers are supported");


    navigator.serviceWorker.register('service-worker.js')
        .then(function(reg) {
            console.log("ServiceWorker registered ◕‿◕");
            console.dir(reg);
        })
        .catch(function(error) {
            console.log("Failed to register ServiceWorker ಠ_ಠ");
            console.dir(error);
        });
}
4b9b3361

Ответ 1

Я вижу ту же проблему. Его можно безопасно игнорировать.

Эта ошибка отслеживает удаление шума из Chrome: https://code.google.com/p/chromium/issues/detail?id=541797

Он должен начинаться с Chrome 50.

Из потока:

Улучшить код ошибки для обслуживающего служащего, если он не найден.

ServiceWorkerWriteToCacheJob - это URLRequestJob, ответственный за извлечение и запись обновленного script. Он не работает с сетевой ошибкой когда он хочет прервать обновление, потому что новый script является тем же как старый.

В настоящее время это приводит к ошибкам ERR_FAILED, появляющимся в DevTools консоль и netlog, которые запутывают и трудно отлаживают, поскольку ошибка также возникает для фактических сетевых ошибок. Этот патч изменяет ошибка в FILE_EXISTS, поэтому более понятно, почему работа "не удалась".