我有一个 DNN 7 自定义模块,允许用户选择与其登录相关的照片。我已经设置好了,所以照片的名称对于每个用户来说总是相同的(例如 User1.jpg)。
当用户更新他们的照片时,我仍然会看到旧照片,直到他们注销然后重新登录。我已确认磁盘上的图像是正确的,但 DNN 将为其缓存旧照片。如何在从 C# 回发期间清除模块的缓存。
提前致谢。
我有一个 DNN 7 自定义模块,允许用户选择与其登录相关的照片。我已经设置好了,所以照片的名称对于每个用户来说总是相同的(例如 User1.jpg)。
当用户更新他们的照片时,我仍然会看到旧照片,直到他们注销然后重新登录。我已确认磁盘上的图像是正确的,但 DNN 将为其缓存旧照片。如何在从 C# 回发期间清除模块的缓存。
提前致谢。
要清除模块缓存,可以使用 DataCache.ClearModuleCache(TabId) 方法。根据您的要求,您还可以使用 Config.Touch() 方法进行完整的应用程序回收。命名空间是 Dotnetnuke.Common.Utilities。
您不需要更新缓存。在查询字符串中创建带有上次修改时间戳的图像 url。比如说你的图片在 2013 年 5 月 1 日被修改,你可以构建如下所示的 url:
http(s)://domain/path/image.extension?modified=20130501
一旦您的图像修改,您的修改日期必须更新,查询字符串将更改为该日期。例如,它的最后一次更新是 5 月 15 日
http(s)://domain/path/image.extension?modified=20130515
这样你就不需要更新缓存了。
由于您正在执行自定义模块,因此您可以轻松实现这一点。