Я реализовал cacheableResponse для Workbox, проверив заголовок ответа от API.
Однако, похоже, он не кэширует запросы API, в заголовке которых присутствует x-is-cacheable
.
Вот как я реализовал моего сервисного работника
const cacheableResponse = new workbox.cacheableResponse.Plugin({
statuses: [0, 200],
headers: {
'x-is-cacheable': true,
},
});
// APIs
workbox.routing.registerRoute(
new RegExp('https://my-api-url.here'),
workbox.strategies.networkFirst({
cacheName: 'api-cache',
plugins: [
cacheableResponse
]
})
);
Я могу подтвердить , что в заголовке ответа API присутствует x-is-cacheable: true
и он возвращает код состояния 200.
Если я удаляю headers
, тогда он работает, однако мне нужно отфильтровать конкретные API, которые мне нужно кэшировать.
У кого-нибудь есть идеи, почему это решение не работает?