是否可以使用ImageResizer使特定图像的缓存无效?

时间:2015-03-04 17:02:56

标签: imageresizer imageresizer-diskcache

我正在使用ImageResizer(http://imageresizing.net/)并且好奇是否有人找到了清除特定项目缓存的方法?

这对我有很大的帮助,因为我有一些遗留系统需要获取更新的图像,我无法在图像中添加任何查询字符串参数来刷新缓存。

1 个答案:

答案 0 :(得分:2)

为了扩展到数百万个项目,DiskCache不维护源文件和缓存图像之间的交叉引用表 - 而是使用组合源文件,修改日期和命令的单向哈希函数。

如果您想要失效,您的提供商需要通过IVirtualFileWithModifiedDate支持它。与每个请求的失效检查相关联的成本,因此建议使用某种形式的窗口缓存。

您还可以使用网址重写来映射"旧网址"新的不可变网址。对于少量图像,这是最高效的方法。请记住,即使ImageResizer提供的是正确的图像,也会有其他层面的缓存(浏览器,代理等)。