首页 > 解决方案 > 未调用 Service Worker 获取事件

问题描述

我有以下代码

index.js

if (navigator.serviceWorker) {
  navigator.serviceWorker.register("/cache.js", {
    scope: "/",
  })
}

缓存.js

const cacheName = "app";

self.addEventListener("fetch", (event) => {
  event.respondWith(
    caches.open(cacheName).then((cache) => {
      return fetch(event.request).then((response) => {
        cache.put(event.request, response.clone());
        return response;
      }).catch(() => {
        return cache.match(event.request);
      });
    }),
  );
});

self.addEventListener("activate", () => {
  self.clients.claim();
});

self.addEventListener("install", (event) => {
  event.waitUntil(
    caches.open(cacheName).then((cache) => {
      return cache.addAll(
        [
          "/",
          "/index.js",
          "/index.css",
          "/manifest.webmanifest",
          "/favicon.ico",
        ],
      );
    })
  );
});

每个事件都被调用而没有错误,除了fetch根本没有被调用的事件。我正在通过 https 执行此操作。任何人都知道为什么这不起作用?我查看了许多相关的帖子,但他们只让我走到了这一步。

标签: javascriptservice-worker

解决方案


推荐阅读