Kai*_*Kai 5 etag caching webpack
我们正在重新设计整个资产构建流程,以使用 100% webpack。在此过程中,我想使用其哈希功能(例如 [name].[chunkhash].js)来改进缓存。
但我的后端同事说不需要,我们应该使用 ETag 来代替缓存。所以文件名中根本没有哈希值。
我喜欢这个想法,但我想知道如果可以使用 ETags,为什么捆绑器要提供此哈希功能。
有人有 ETag 的经验并知道其优点/缺点吗?(顺便说一句,我们正在使用自定义 PHP 后端)
散列文件名和使用ETags
有不同的目的。
当您使用散列文件名时,您正在引用一个新的、唯一的资源。第一次获取时,将从服务器加载,并且可以永久缓存。重要的是,您的代码不会中断,因为您的 HTML 仅指向它所依赖的特定版本化资产。
ETags
相比之下,用于对已缓存资源进行条件验证。当资源超出其缓存时间并且浏览器想要检查当前版本是否仍然有效时,将使用它们。因此缓存时间将是有限的,浏览器将被迫与服务器检查以查看文件是否已更改。更重要的是,如果您提供的页面依赖于新版本的资源,而旧版本的资源仍然被缓存,那么您的网站可能会崩溃。
因此,虽然ETags
它们非常有用,但当涉及到静态文件时,它们并不能替代散列文件名。