Я новичок в рабочей коробке, я установил базовый код рабочей коробки для предварительного кэширования начальной оболочки / и 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();
}
});