我正在使用 ServiceWorker 并且在开发模式下工作得很好,我的问题是在生产模式下我的包名称是使用哈希生成的,例如1234das3123ad5.bundle.js
,所以服务工作者没有缓存它。我的 sw 代码如下所示:
self.addEventListener('install', function(event) {
// pre cache a load of stuff:
event.waitUntil(
caches.open('mycache').then(function(cache) {
return cache.addAll([
'/dist/bundle.js',
'/dist/app.css',
'/dist/index.html',
'https://cdnjs.cloudflare.com/ajax/libs/antd/2.7.2/antd.css'
]);
})
)
});
在Cache API的文档中,我没有看到任何关于如何实现这一点的示例。
显然我可以缓存dist
文件夹下的所有内容,例如:
self.addEventListener('install', function(event) {
// pre cache a load of stuff:
event.waitUntil(
caches.open('mycache').then(function(cache) {
return cache.addAll([
'/dist/',
]);
})
)
});
但我不觉得它是一个优雅的、长期的、好的解决方案。这是一种在缓存中拥有通配符的方法吗?像'/dist/*.bundle.js'
什么?