脱机(Workbox构建)时,Service Worker不会缓存文件

时间:2019-12-06 15:38:44

标签: workbox

我正在尝试通过工作箱实现服务工作者。 一切都在线缓存,但是当我离线时,我收到“ ERR_INTERNET_DISCONNECTED”错误消息。当我离线时,我的预缓存和运行时缓存也消失了。

当我编写自己的提取方法(不使用工作箱路由方法)时,serviceworker正在脱机工作。据我了解,获取请求是由路由方法中的处理程序处理的,还是我错了?那么,在离线模式下,我的应用程序无法正常工作吗?

这是我的serviceworker源文件(在构建过程中将添加预缓存文件):

importScripts(
  "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"
);

workbox.precaching.precacheAndRoute([]);

self.addEventListener("message", event => {
  if (event.data && event.data.type === "SKIP_WAITING") {
    self.skipWaiting();
  }
});

const bgSyncPlugin = new workbox.backgroundSync.Plugin("myQueueName", {
  maxRetentionTime: 24 * 60 // Retry for max of 24 Hours (specified in minutes)
});

workbox.routing.registerRoute(
  /\/api\/.*\/*.json/,
  new workbox.strategies.NetworkOnly({
    cacheName: "apiCallCache",
    plugins: [bgSyncPlugin]
  }),
  "POST"
);

workbox.routing.registerRoute(
  //match
  /\.(?:png|jpg|jpeg|svg|gif|css|js)$/,
  //handler
  new workbox.strategies.StaleWhileRevalidate({
    cacheName: "runtimeCache"
  })
);

感谢您的帮助!

0 个答案:

没有答案