Service Worker fetch 事件未触发

Rau*_*acs 6 javascript statamic service-worker

我有一个网站,我在根目录安装了一个 Service Worker,甚至将范围设置为“/”,如此处所述:Service Worker 正在缓存文件,但从未触发 fetch 事件

但是, fetch 事件没有触发。任何帮助表示赞赏。

importScripts('/site/themes/libs/cache-polyfill.js');

self.addEventListener('install', function (e) {
  e.waitUntil(
    caches.open('v1').then(function (cache) {
      return cache.addAll([
        '/',
        '/test-page',
        '/site/themes/css/main.css',
        '/site/themes/js/vendors.min.js',
        '/site/themes/js/app.min.js'
      ]);
    })
  );

  self.skipWaiting()
});

self.addEventListener('fetch', function (event) {
  console.log(event.request.url);
  event.respondWith(
    caches.match(event.request).then(function (response) {
      return response || fetch(event.request);
    })
  );
});
Run Code Online (Sandbox Code Playgroud)

编辑:我在网站上使用 statamic。

小智 6

首先验证service worker的注册事件是否成功。如果是,请尝试添加一个 activate 事件侦听器。

self.addEventListener('activate', function(event) {
  console.log('Claiming control');
  return self.clients.claim();
});
Run Code Online (Sandbox Code Playgroud)

  • 是的,注册事件成功。是的,激活回调被调用。但 fetch 仍然没有触发。 (8认同)
  • 为什么这有帮助? (7认同)