作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要一个 service worker 来缓存来 self 的 cdn 的文件?如果文件在我的根域下,则一切正常,否则我总是会收到诸如“跨源域...”之类的错误。
我所有的静态资源都在 cdn 上,我应该如何处理这些文件的缓存?
我在 AMP 中的代码
<amp-install-serviceworker src="https://www.example.com/swAmp.js" layout="nodisplay"></amp-install-serviceworker>
我的服务 worker swAmp.js
var CACHE_NAME = 'example-v0';
var urls = [
'https://static.example.com/img/menu/1.png',
'https://static.example.com/img/menu/2.png',
'https://static.example.com/img/menu/3.png'
];
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('Opened cache');
return cache.addAll(urls);
})
);
});
所有示例均基于本地资源:(
还有如何服务他们?一个完整的示例将非常有帮助,谢谢。
最佳答案
我在这篇文章中找到了有效的答案 https://filipbech.github.io/2017/02/service-worker-and-caching-from-other-origins
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(CACHE)
.then(function(cache) {
console.log('Opened cache');
urls.forEach(function(value) {
const request = new Request(value, {mode: 'no-cors'});
fetch(request).then(response => cache.put(request, response));
});
return cache;
})
);
});
关于javascript - 如何在 AMP 文件中使用服务 worker 来缓存来自 CDN 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48976762/
我是一名优秀的程序员,十分优秀!