Service worker抛出net::ERR_FILE_EXISTS错误

Service worker throwing an net::ERR_FILE_EXISTS error?

本文关键字:FILE EXISTS 错误 worker ERR net Service 抛出      更新时间:2023-09-26
service-worker.js:1 GET http://localhost:8080/service-worker.js net::ERR_FILE_EXISTS

这是我每次在注册一个service worker后刷新时得到的错误。我已经确保了service-worker.js文件存在于根目录中。此外,服务工作者已注册并工作良好。但我还是得到这个错误。我也在本地主机工作。

这是我的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);
        });
}

我看到了同样的问题。

这个错误跟踪从Chrome移除噪音:https://code.google.com/p/chromium/issues/detail?id=541797

从Chrome 50开始应该是实时的。

从线程:

改进service worker因未找到更新而退出的错误代码

ServiceWorkerWriteToCacheJob是URLRequestJob负责的获取并编写更新后的脚本。网络错误导致失败当它想要中止更新,因为新脚本是相同的

目前导致ERR_FAILED错误出现在DevTools控制台和netlog,这是令人困惑和难以调试的,因为实际网络错误也会发生错误。这个补丁改变了错误设置为FILE_EXISTS,这样就更清楚为什么作业"失败"了。