Caching 缓存破坏:追加查询字符串还是重命名文件?
当我们试图破坏静态资产缓存时,有两种常见的方法:Caching 缓存破坏:追加查询字符串还是重命名文件?,caching,gulp,frontend,Caching,Gulp,Frontend,当我们试图破坏静态资产缓存时,有两种常见的方法: 通过附加查询字符串,如assets/file.ext?v=123abc 通过重命名文件,如assets/file.123abc.ext 然而,经过几天的搜索,我发现大多数构建工具更喜欢重命名文件,例如。在我看来,这种修订将在服务器上生成大量文件块: assets |_ file.a.ext |_ file.b.ext |_ file.c.ext |_ file.d.ext |... 对此有什么想法吗?经过几天的搜索,我找到了一些有趣的
assets/file.ext?v=123abc
assets/file.123abc.ext
assets
|_ file.a.ext
|_ file.b.ext
|_ file.c.ext
|_ file.d.ext
|...
对此有什么想法吗?经过几天的搜索,我找到了一些有趣的查询字符串解决方案(
assets/file.ext?v=123abc
):
如果我们使用CDN来服务静态资产,那么动态页面和静态资产是分开托管的。一旦我们想要发布新版本的应用程序,就会发生冲突:应该首先更新哪部分资源
资源/file.ext?v=456def
,然后浏览器下载旧资源并将其缓存为新版本,不幸的是,这些用户将永远无法获得正确的资源assets/file.123abc.ext
)。不同版本的文件命名不同,因此它们不会相互覆盖。因此我们先更新了资产,然后更新了页面,一切都如期进行,呜呼
有关更多详细信息,请阅读本文(中文):