Существует еще немного предыстории о том, как работает маршрутизация Workbox в документации .
Однако, чтобы ответить на ваш конкретный вопрос, вы можете создать маршрут, который соответствует регулярному выражению,и что регулярное выражение должно соответствовать только части входящего URL-адреса (например, совпадение с общим префиксом или суффиксом).
Предполагается, что ваш общий префикс /ab/abc/api/
, и что ваши фактические вызовы API относятся к существующим URL-адресампо этому пути (например, /ab/abc/api/entries
, /ab/abc/api/latest?t=1
и т. д.) вы можете создать маршрут, например:
workbox.routing.registerRoute(
new RegExp('/ab/abc/api'),
workbox.strategies.networkFirst({
cacheName: 'abc',
plugins: [
new workbox.expiration.Plugin({
maxEntries: 50
})
]
}));
Еще одна вещь, которую я изменил, это maxEntries
для вашего срока действия кэша,Каждый уникальный URL-адрес, соответствующий RegExp
, получит свою собственную запись в кэше, и если вы установите maxEntries
в 1, то в конечном итоге вы будете кэшировать только самый последний использованный URL-адрес, а срок действия всех остальных записей истекает через каждый раз.Я предполагаю, что установка его на что-то более высокое (я использовал 50, но все, что имеет смысл для вас) больше соответствует вашим намерениям.