1

我们在 CSS 和 JS 中使用 SquishIt,它对缓存失效非常有效。每当我们更改 CSS 或 JS 时,都会生成一个新的 URL,它会强制浏览器加载更新的文件。

但是,诸如背景图像之类的资产在 CSS 中有它们的 url。当我们更改图像时,我们遇到了与 SquishIt 之前的 CSS 和 JS 相同的缓存失效问题。

默认情况下,我们的 IIS 设置为将所有图像缓存 30 天,因此当更新图像时,浏览器甚至不会请求它,因为它只是从缓存中获取它。

有没有办法让 SquishIt 将指纹插入到 CSS 中的图像 URL 中?如果我们能做到这一点,我们可以使用 Url 重写来再次去除指纹并提供最新的图像。

我想自动执行此操作,并避免在更改图像时必须记住在 CSS 中更新对图像的任何引用的情况。

4

1 回答 1

1

这应该已经到位。您需要调用 .AppendHashForAssets() 在您的捆绑包上设置它以选择加入该行为虽然(这是可选行为,因为在某些情况下计算哈希可能会变得昂贵)

https://github.com/jetheredge/SquishIt/blob/master/SquishIt.Framework/CSS/CSSBundle.cs#L148-156

于 2014-01-08T14:32:26.097 回答