我已经成功注册了 service-workers.js 并且没有错误,并且它具有存储在 cache 中的离线工作所需的所有文件。
但是,当我尝试检查离线时它是否会响应 200 时,
It fails!

这是代码:

//Delete Old Cache
caches.delete('[v0.1.0]');

//Latest CACHE_NAME
var CACHE_NAME = '[v0.1.1] Portfolio (ATB00ker)';

//Files to be Cached
var urlsToCache = [
    '../../../index.html',
    '../jquery-3.2.1.slim.min.js',
    '../owl.carousel.min.js',
    '../scrollreveal.min.js',
    '../../images/bg-creator.webp',
    '../../images/icon/facebook.svg',
    '../../images/icon/telegram.svg',
    '../../images/icon/gmail.svg',
    '../../images/icon/github.webp'
];


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


self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request, {ignoreSearch:true}).then(response => {
      return response || fetch(event.request);
    })
  );
});

最佳答案

您已离线缓存 /index.html,但您正在访问 / 以对其进行测试。这是两条不同的路径,您必须离线缓存要访问的路径。

关于服务 worker 不离线工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46624020/

10-13 07:55