我们使用SquishIt作为CSS和JS,它非常适用于缓存失效。每当我们更改CSS或JS时,都会生成一个新URL,强制浏览器加载更新的文件。
但是,背景图片等资源在CSS中有自己的网址。当我们更改图像时,我们遇到了与SquishIt之前用于CSS和JS的缓存失效相同的问题。
默认情况下,我们的IIS设置为提供标头以将所有图像缓存30天,因此当图像更新时,浏览器甚至不会请求它,因为它只是从缓存中抓取它。
有没有办法让SquishIt将指纹插入CSS中的图片网址?如果我们可以这样做,我们可以使用Url重写来再次剥离指纹并提供最新的图像。
我想自动执行此操作,避免在更改图像时必须记住更新CSS中图像的任何引用的情况。
答案 0 :(得分:1)
这应该已经到位。在设置它时,你需要在你的包上调用.AppendHashForAssets()来选择行为(这是可选行为,因为在某些情况下计算哈希值可能会变得昂贵)
请参阅https://github.com/jetheredge/SquishIt/blob/master/SquishIt.Framework/CSS/CSSBundle.cs#L148-156