Я использую workbox.streams, чтобы попытаться объединить данные для создания ответа. Событие выборки не запускается.
Я работаю над пониманием того, как workbox.streams
работает.
Код ниже является третьей итерацией. Я подумал, что это было проблемой с регулярным выражением, поэтому я изменил это на то, что в коде ниже.
Я убедился, что работаю с последней версией Workbox, чтобы убедиться, что это не проблема с версией, которую я использовал.
Я также изменил предварительный кэш для файлов, чтобы устранить его как источник проблемы.
importScripts('https://storage.googleapis.com/workbox-cdn/releases/4.0.0-beta.0/workbox-sw.js');
// Make this a debug build
workbox.setConfig({
debug: true,
});
const HEAD = '/page-top.html';
const FOOT = '/page-bottom.html';
// const ERROR = '/page-error.html';
const cacheStrategy = workbox.strategies.cacheFirst({
cacheName: workbox.core.cacheNames.precache,
});
const networkStrategy = workbox.strategies.staleWhileRevalidate({
cacheName: 'content',
plugins: [
new workbox.expiration.Plugin({
maxEntries: 50,
}),
],
});
workbox.precaching.precacheAndRoute([]);
workbox.routing.registerRoute(
new RegExp('\.*\.html'),
workbox.streams.strategy([
() => cacheStrategy.makeRequest({request: HEAD}),
async ({event}) => {
try {
const contentResponse = networkStrategy.makeRequest({
request: event.request.url,
});
const contentData = await contentResponse.text();
return contentData;
} catch (error) {
return cacheStrategy.makeRequest({request: ERROR});
}
},
() => cacheStrategy.makeRequest({request: FOOT}),
])
);
Я ожидаю, что браузер отобразит страницу, созданную из всех компонентов, кэшированных с помощью workbox.streams.strategy
. Вместо этого я получаю только тело страницы; похоже, что весь маршрут игнорируется.