How to use service-worker if resources are on diff

2019-07-18 04:27发布

As we know service worker is registered from the root of the project folder but, is there any way to fetch some static resources (css, js) from different domain(s)?

Example :

  • myWebsite.com // main url (e.g. index.html)
  • abc.com/css/style.css // css file path
  • xyz.com/js/jsFile.js //javascript file path

2条回答
聊天终结者
2楼-- · 2019-07-18 05:00

It is by default possible to fetch and cache cross-origin resources according to the specification:

the [cross-origin] objects stored are Response objects with the type attribute set to "opaque" [...] less expressive API than Responses typed "basic"; the bodies and headers cannot be read or set, nor many of the other aspects of their content inspected

查看更多
爷的心禁止访问
3楼-- · 2019-07-18 05:05

Any request that comes from the page (except iframe sub-resources) will pass through the service worker. These resources can be from the same or different origin. You can cache these resources so that they are available offline however as a developer you can't manipulate or inspect the contents of them unless the resources have the correct CORS header set.

For example, in your install event, you can Cache a remote file that is not on your domain.

self.addEventListener('install', function(e) {
  e.waitUntil(
    caches.open('airhorner').then(function(cache) {
      return cache.addAll([
        'https://paul.kinlan.me/'
      ]);
    })
  );
});
查看更多
登录 后发表回答