Workbox Precaching не работает для / или index.php - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в рабочей коробке, я установил базовый код рабочей коробки для предварительного кэширования начальной оболочки / и index.php.Когда я получаю доступ к URL-адресу в первый раз, ссылки отображаются в workbox-precache, но когда я перехожу в автономный режим, он не загружается.Я пробовал оба / и /index.php, оба не загружаются.Когда я получаю доступ к ссылке во второй раз / добавляется в кэш рабочего времени, после чего ссылка начинает работать в автономном режиме.Я не могу понять, почему ссылка не доступна даже после правильного кэширования.

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

workbox.setConfig({ debug: true });
workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);

workbox.googleAnalytics.initialize();

if (workbox) {
  console.log(`Yay! Workbox is loaded `);
} else {
  console.log(`Boo! Workbox didn't load `);
}

workbox.precaching.precacheAndRoute([
    { url: '/', revision: '7' },
    { url: 'index.php', revision: '7' },
    { url: '/offline.html', revision: '7' },
    { url: '/404.html', revision: '7' },
    { url: 'templates/ostrainingbreeze/css/template.css', revision: '7' },
    { url: 'templates/system/css/general.css', revision: '7' },
    { url: 'templates/ostrainingbreeze/css/mobilemenu.css', revision: '7' },
    { url: 'media/jui/js/jquery.min.js', revision: '7' },
    { url: 'media/jui/js/jquery-noconflict.js', revision: '7' },
    { url: 'media/jui/js/jquery-migrate.min.js', revision: '7' },
    { url: 'media/jui/js/bootstrap.min.js', revision: '7' },
    { url: 'media/system/js/caption.js', revision: '7' },
    { url: 'media/system/js/core.js', revision: '7' },
    { url: 'media/system/js/keepalive.js', revision: '7' },
    { url: 'templates/ostrainingbreeze/js/template.js', revision: '7' },
    { url: 'templates/ostrainingbreeze/js/jquery.mobilemenu.js', revision: '7' },
    { url: 'templates/ostrainingbreeze/js/mobilemenu.js', revision: '7' },
    { url: 'templates/ostrainingbreeze/images/logo.png', revision: '7' },
    { url: 'templates/ostrainingbreeze/favicon.ico', revision: '7' },
    { url: 'media/system/css/system.css', revision: '7' },
]);

workbox.routing.registerRoute(
  new RegExp('.*\.css'),
  workbox.strategies.cacheFirst({
      cacheName: 'css-cache',
      plugins: [
      new workbox.expiration.Plugin({
          maxEntries: 50,
          maxAgeSeconds: 30 * 24 * 60 * 60,
      })
      ],
  })
);

workbox.routing.registerRoute(
  new RegExp('.*\.js'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'js-cache',
  })
);

workbox.routing.registerRoute(
  new RegExp('.*\.png|jpg|jpeg|svg|gif|webp'),
  workbox.strategies.cacheFirst({
    cacheName: 'image-cache',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 50,
        maxAgeSeconds: 30 * 24 * 60 * 60,
      })
    ],
  })
);

workbox.routing.registerRoute(
   new RegExp('.*\.php|html'),
  workbox.strategies.staleWhileRevalidate({
   })
);

workbox.routing.setDefaultHandler(
  workbox.strategies.staleWhileRevalidate()
);

workbox.routing.setCatchHandler(({event}) => {
  switch (event.request.destination) {
    case 'document':
      return caches.match('/offline.html');
    break;

    default:
    return Response.error();
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...