我有一个多语言网站,并且已将每个版本添加到单独的目录中。
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。
是否会因为我的API URL与https://www.api.com/en/path/...
不同而发生此问题?
解决该问题该怎么办?
任何帮助将不胜感激。