2013-05-19 2 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); но он все еще не работает. Если я добавлю указатель на имя изображения, чтобы сделать его уникальным, он работает так, как ожидалось, но я не хочу этого делать. – user2275921

0

Вам не нужно обновлять кеш. создайте URL-адрес изображения с последним измененным меткой времени в querystring. скажем, например, ваше изображение будет изменено с 1-го мая 2013 года, вы можете создать URL-адрес, который выглядит так: http(s)://domain/path/image.extension?modified=20130501

Как только ваше изображение изменится, ваша измененная дата должна быть обновлена, а строка запроса изменится на эту дату. например, последнее обновление 15 мая http(s)://domain/path/image.extension?modified=20130515

Таким образом, вам не нужно обновлять кеш.

Поскольку вы выполняете собственный модуль, вы можете легко реализовать это.

Смежные вопросы