我有这个自定义元素,用url获取facebook个人资料图片(非常小的尺寸)。我正在使用服务工作者来拦截呼叫并缓存它。但是,它似乎没有效果。每次刷新页面时,呼出都会通过网络传出。此外,本地存储中的开发工具中没有任何内容。我也尝试了cacheOnly
,它仍然向网络调用了网址,因此我知道服务工作者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>
答案 0 :(得分:0)
这不是聚合物(或platinum-sw
)问题,这是由于服务工作者的运作方式。
服务工作者仅为其自己的范围提供获取请求:具体而言,在与服务工作者文件相同的域上,以及在该目录中或更低的目录中。因此,如果您使用sw文件注册它:
https://example.com/stuff/service-worker.js
它只会拦截以https://example.com/stuff/
开头的抓取请求http://www.html5rocks.com/en/tutorials/service-worker/introduction/#toc-before
(请参阅“如何注册和安装服务工作者”一节。)
如果你想做这样的事情,你需要通过自己的服务器代理请求。