есть пример Маршрутизация рабочего стола / Расширенное использование
Но когда я попробовал это, я получаю:
Uncaught ReferenceError: DefaultRouter не определен
там мой служащий:
<!-- language: lang-js --> importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.2.0/workbox-sw.js"); workbox.skipWaiting(); workbox.clientsClaim(); workbox.setConfig({ debug: true }); const router = new DefaultRouter(); router.registerRoute(new RegExpRoute( /\/index\.html/, workbox.strategies.networkFirst())); router.registerRoute(new RegExpRoute( /main\.min\.js/, workbox.strategies.staleWhileRevalidate())); self.addEventListener('fetch', (event) => { const responsePromise = router.handleRequest(event); if (responsePromise) { // Router found a route to handle the request event.respondWith(responsePromise); } else { // No route found to handle the request console.debug('workbox has no route to handle request ', event.request); } });
теперь я нахожу просто забавно выглядящий обход: вместо:
const router = new DefaultRouter();
Я использую:
router = new workbox.routing.constructor();