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

is it possible to invalidate cache of a specific image using ImageResizer?

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

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

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

如果你想做失效,你的提供者需要通过 IVirtualFileWithModifiedDate 支持它。每个请求的无效检查都会产生成本,因此建议使用某种形式的窗口缓存。

您还可以使用 URL 重写将 "legacy URLs" 映射到新的 immutable url。对于少量图像,这是性能最高的方法。请记住,即使 ImageResizer 正在提供正确的图像,也有其他缓存层(浏览器、代理等)会妨碍。