上下文:我有一个生产应用程序(如果你想看这里),它当前正在使用静态资产修订包,除了它在生成内容哈希时也处理依赖项之外。gulp-rev-all
gulp-rev
它生成一组具有静态名称(例如goals.js
become goals.6a5aa614.js
)并使用这些静态名称相互引用的新文件。然后我在生产环境中使用 Fastly CDN 提供这些文件,因此我的 NodeJS 服务器没有被积极用于静态资产。这一直很好。
现在我正在使站点与服务人员离线工作。由于我去年在同步逻辑上做了很多工作,所以网站的动态部分很容易检修。但是我对如何处理我的静态资产有点不知所措。
我想我会使用工作箱,这似乎工作正常。但是workbox precache
使用查询来破坏缓存而不是更改文件名,两者都做似乎很愚蠢。但是,如果我停止使用版本化名称,那么如何在不支持 service worker 的浏览器上破坏缓存?
(我还有另一个相关的问题,考虑到 Fastly 的响应对 SW 来说是不透明的,因此继续使用 Fastly 是否有意义,因此不一定是预缓存的好选择?虽然没有 Fastly,但对于任何人来说,应用程序会变得慢很多没有使用服务工作者,这听起来与 PWA 方法对立。我应该添加一个 nginx 缓存还是什么?(我不知道这是什么,但我听说过几次))
在我看来,这必须有一个优雅的解决方案,但我的理解gulp
非常有限,我很难知道什么是可能的,而且我对 ServiceWorkers 和缓存的理解非常有限,我很难知道正是我想要的。
因此,我无法在这个问题上获得任何牵引力:
如何调整我的 gulp 静态资产修订以与 ServiceWorkers 一起使用?
有用的一件事是链接到其他生产应用程序如何处理此问题的示例。