Область работника сервиса об API кеширования - PullRequest
0 голосов
/ 08 мая 2019

У меня многоязычный веб-сайт, и я добавил каждую версию в отдельных каталогах.

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/...? Что я могу сделать для решения этой проблемы?

Буду признателен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...