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

时间:2013-05-19 10:47:21

标签: dotnetnuke

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

当用户更新照片时,我仍会看到旧照片,直到他们退出,然后重新登录。我已经确认磁盘上的图像是正确的,但DNN将转到旧照片的缓存中。如何在C#回发期间清除模块的缓存。

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您无需更新缓存。使用查询字符串中的上次修改时间戳创建图像URL。所以说例如您的图像在2013年5月1日被修改,您可以构建如下所示的网址: http(s)://domain/path/image.extension?modified=20130501

一旦图像修改,您的修改日期必须更新,查询字符串将更改为该日期。例如它最后更新于15日可能 http(s)://domain/path/image.extension?modified=20130515

这样您就不需要更新缓存了。

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