2013-05-19 44 views
0

我有一个DNN 7自定义模块,允许用户选择与其登录相关的照片。我已经设置好了,所以照片的名称对每个用户都是一样的(例如User1.jpg)。如何清除DNN模块缓存中的图像

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

在此先感谢。

回答

0

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

+0

我添加了DotNetNuke.Common.Utilities.DataCache.ClearModuleCache(this.TabId);但它仍然不起作用。如果我为图像名称添加一个GUID以使其名称具有唯一性,则它可以按预期工作,但我宁愿不必那样做。 – user2275921

0

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

只要你的图像修改,你的修改日期必须更新,查询字符串将更改为该日期。例如它的最后更新日期为5月15日 http(s)://domain/path/image.extension?modified=20130515

这样你就不需要更新缓存。

由于您正在做自定义模块,您可以轻松实现这一点。