我们知道服务 worker 是从项目文件夹的根目录注册的,但是,有什么方法可以从不同的域中获取一些静态资源(css,js)吗?

范例:

  • myWebsite.com //主网址(例如index.html)
  • abc.com/css/style.css // css文件路径
  • xyz.com/js/jsFile.js // javascript文件路径
  • 最佳答案

    来自页面的任何请求(iframe子资源除外)都将通过服务 worker 。这些资源可以来自相同或不同的来源。您可以缓存这些资源,以使它们可以脱机使用,但是作为开发人员,除非资源设置了正确的CORS header ,否则您不能操纵或检查它们的内容。

    例如,在安装事件中,您可以缓存不在您的域中的远程文件。

    self.addEventListener('install', function(e) {
      e.waitUntil(
        caches.open('airhorner').then(function(cache) {
          return cache.addAll([
            'https://paul.kinlan.me/'
          ]);
        })
      );
    });
    

    07-26 00:18
    查看更多