У меня многоязычный веб-сайт, и я добавил каждую версию в отдельных каталогах.
https://www.mywebsite.com/en
https://www.mywebsite.com/fa
Используя сервисный работник , я хочу сохранить свои API в кеше браузера. Из-за моих разделенных каталогов я зарегистрировал своего сервисного работника так:
window.addEventListener('load', () => {
if (window.location.href.indexOf("/en/") > 0) {
navigator.serviceWorker.register('/en/service-worker.js');
} else {
navigator.serviceWorker.register('/fa/service-worker.js');
}
});
Я хочу иметь офлайн-первое приложение, поэтому я добавил в свой файл рабочего сервиса:
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request);
})
);
});
Мои ссылки API похожи на:
https://www.api.com/path/...
Если я запускаю свое приложение в localhost и регистрирую работника сервиса, как navigator.serviceWorker.register('/service-worker.js');
, все работает нормально, и мои API сохраняются в кеше браузера.
Но если я хочу запустить свое приложение на сервере, оно не сможет кэшировать мои API.
Эта проблема возникает из-за того, что URL моего API не похож на https://www.api.com/en/path/...
?
Что я могу сделать для решения этой проблемы?
Буду признателен за любую помощь.