我正在使用ImageResizer
+Diskcache
插件,我正在寻找让缓存正常工作的问题。图像要么被永久缓存(无论我上传多少次新图像),要么更改一些设置,我在某些浏览器/计算机中获取旧图像,而在其他浏览器/计算机中获取新图像。
这就是我现在的 web.config 中的内容:
<add name="AzureReader2" connectionString="blahblahblah" endpoint="http://blahblahblah.blob.core.windows.net/" prefix="~/" redirectToBlobIfUnmodified="false" requireImageExtension="false" checkForModifiedFiles="true" cacheMetadata="true"/>
和:
<diskcache dir="~/imagecache" autoclean="true" hashModifiedDate="true" subfolders="8192" asyncWrites="true" asyncBufferSize="10485760" cacheAccessTimeout="15000" logging="true" />
不确定是否可以使用现有参数实现。我的目标是最好在上传新图像时使缓存无效,而不必更改为图像提供服务的查询字符串以获取新图像。
我刚在想:
- 也许有一个 blob 存储触发器,当替换图像已上传时,会触发一个删除该图像缓存的 webhook?
- 或者对我的 imageresizer 应用程序的 Web 请求以在缓存中预加载新图像,以便替换旧的缓存图像???
我看过一些关于使用 IVirtualFileWithModifiedDate 的帖子,但据我了解,这会对性能产生很大影响吗?可能有 5% 的图像请求会让人上传图像并期望它立即看到它,因为大多数图像几乎没有变化,但如果图像在他们之后一天都没有显示新图像,这真的很令人沮丧已经上传了!
如果我可以IVirtualFileWithModifiedDate
在图像更改而不是在每个图像请求中使用使缓存无效?那可能吗?