【发布时间】:2017-01-18 20:27:45
【问题描述】:
我一直在使用 Google Web Starter Kit (https://github.com/google/web-starter-kit) 并且有一点渐进式 Web 应用程序正在运行,但我坚持一件事:缓存来自外部 CDN 的静态文件。例如。我正在使用来自 https://fonts.googleapis.com/icon?family=Material+Icons 的 MDL 图标我看不到缓存请求的方法,因为服务工作者只响应我的应用程序域中的 URL。
我看到的选项: 1. 下载文件并将其放在供应商文件夹中。优点:易于设置SW缓存。缺点:文件不会随着新图标的添加而保持最新(尽管这并不重要,因为我的代码只会使用可用的图标)。
使用 NPM 存储库:https://www.npmjs.com/package/material-design-icons 并使用构建步骤从 node_modules 复制 CSS 文件。优点:将允许从 NPM 自动更新。缺点:设置稍微复杂一些。
一些奇特的代理方法可以让我使用 SW 缓存外部 URL。例如myapp.com/loadExternal?url=https://fonts.googleapis.com/icon?family=Material+Icons
我现在倾向于 2,但如果知道 3 是否可能,我会很酷。
【问题讨论】:
-
嗨,`self.addEventListener('install', e => { e.waitUntil(caches.open('cache').then(cache => { return cache.addAll([ '/ ', '/index.html', '/styles/main.css', '/scripts/main.min.js', 'fonts.googleapis.com/css?family=Quicksand:300' ]) .then(() => self.skipWaiting()); }) ) });` 这行得通吗?
标签: javascript caching service-worker