Dotnetnuke 如何从DNN模块缓存中清除映像

Dotnetnuke 如何从DNN模块缓存中清除映像,dotnetnuke,Dotnetnuke,我有一个DNN7自定义模块,允许用户选择与其登录相关联的照片。我已经设置好了,所以照片的名称对于每个用户来说都是一样的,例如User1.jpg 当用户更新他们的照片时,我仍然会看到旧照片,直到他们注销然后再次登录。我已经确认磁盘上的映像是正确的,但DNN将进入其缓存以获取旧照片。如何在从C发回的过程中清除模块的缓存 提前谢谢 要清除模块缓存,可以使用DataCache.ClearModuleCacheTabId方法。根据您的要求,您还可以使用Config.Touch方法完成应用程序回收。名称空间

我有一个DNN7自定义模块,允许用户选择与其登录相关联的照片。我已经设置好了,所以照片的名称对于每个用户来说都是一样的,例如User1.jpg

当用户更新他们的照片时,我仍然会看到旧照片,直到他们注销然后再次登录。我已经确认磁盘上的映像是正确的,但DNN将进入其缓存以获取旧照片。如何在从C发回的过程中清除模块的缓存


提前谢谢

要清除模块缓存,可以使用DataCache.ClearModuleCacheTabId方法。根据您的要求,您还可以使用Config.Touch方法完成应用程序回收。名称空间是Dotnetnuke.Common.Utilities。

您不需要更新缓存。在querystring中创建带有上次修改的时间戳的图像url。例如,假设您的图像在2013年5月1日被修改,您可以构建如下url: https://domain/path/image.extension?modified=20130501

一旦图像被修改,修改的日期就必须更新,查询字符串将更改为该日期。例如,最近一次更新是在5月15日 https://domain/path/image.extension?modified=20130515

这样,您就不需要更新缓存


由于您正在执行自定义模块,因此可以轻松实现此功能。

我添加了DotNetNuke.Common.Utilities.DataCache.ClearModuleCachethis.TabId;但它仍然不起作用。如果我向映像名称添加guid以使名称唯一,它确实可以按预期工作,但我不希望这样做。