Polymer 聚合服务工作进程未缓存

Polymer 聚合服务工作进程未缓存,polymer,polymer-1.0,service-worker,Polymer,Polymer 1.0,Service Worker,我有一个自定义元素,它获取带有url的facebook个人资料图片(非常小)。我正在使用服务人员拦截呼叫并缓存它。然而,它似乎并不有效。每次页面刷新时,呼叫都会通过网络发出。此外,本地存储下的开发工具中没有任何内容。我还尝试了cacheOnly,但它仍然向网络发出url请求,因此我知道服务人员platinum sw fetch无效 <platinum-sw-register auto-register clients-claim

我有一个自定义元素,它获取带有url的facebook个人资料图片(非常小)。我正在使用服务人员拦截呼叫并缓存它。然而,它似乎并不有效。每次页面刷新时,呼叫都会通过网络发出。此外,本地存储下的开发工具中没有任何内容。我还尝试了
cacheOnly
,但它仍然向网络发出url请求,因此我知道服务人员
platinum sw fetch
无效

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>
对我做错了什么有什么建议吗?如果它真的起作用了,我不应该在本地存储中看到一些用于开发工具的东西吗?不过,我确实在开发工具中看到了服务工作者本身

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>

这不是聚合物(或
铂金sw
)问题,而是由于服务人员的工作方式

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>
服务工作者仅为其自己的作用域提供获取请求:具体地说,在与服务工作者文件相同的域上,在该目录或更低的目录中。因此,如果您在以下位置使用软件文件进行注册:

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>
它将只截获以开头的获取请求

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>
(请参阅“如何注册和安装服务人员”一节。)

<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>

如果要执行类似操作,需要通过自己的服务器代理请求。

我认为这不正确
platinum sw
具有“`”的
origin
属性。如果要为特定跨源域上的请求定义自定义处理程序,则必须将origin参数与path结合使用,以匹配要处理的域。“`对不起,我没有理解。试图改变投票结果。关于独立域的
origin
属性呢?是的,我想你是对的,我在这里跳了枪。您应该能够获取一些跨域资源。我不确定这里出了什么问题。你能告诉我软件是否正在启动吗?根据regexp仔细检查实际获取的路径?在控制台中看到任何错误吗?唯一的错误是
ERR\u FILE\u EXISTS
,它与。。。。。只不过是我的声音。是的,软件正在启动。。。。我在dev工具中看到了worker。只是确认一下,
platinum sw
元素确实会缓存图像,对吗?我想你说的是组件。不,当你想缓存所有内容而不是单个url时,该元素会出现。这是一个方便取的包装。
<platinum-sw-register auto-register
                      clients-claim
                      skip-waiting
                      base-uri="../bower_components/platinum-sw/bootstrap">
  <platinum-sw-fetch
    origin="https://z-1-scontent.xx.fbcdn.net"
    path="/hprofile(.*)"
    handler="cacheFirst">
  </platinum-sw-fetch>
</platinum-sw-register>