2013-05-19 45 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

這樣你就不需要更新緩存。

由於您正在做自定義模塊,您可以輕鬆實現這一點。