我有一个DNN 7自定义模块,允许用户选择与其登录相关联的照片。我设置好了,所以照片的名称对每个用户来说都是一样的(例如User1.jpg)。
当用户更新照片时,我仍会看到旧照片,直到他们退出,然后重新登录。我已经确认磁盘上的图像是正确的,但DNN将转到旧照片的缓存中。如何在C#回发期间清除模块的缓存。
提前致谢。
答案 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
这样您就不需要更新缓存了。
由于您正在使用自定义模块,因此您可以轻松实现此功能。