#asp.net #image #caching
#asp.net #изображение #кэширование
Вопрос:
У меня проблема с кэшем.
Когда я изменяю свойство ImageUrl элемента управления изображениями, иногда браузер использует кеш, и поэтому новое изображение не отображается.
Как я могу решить проблему, чтобы после изменения свойства ImageUrl отображалось новое изображение?
Вот мой код:
url-адрес строки = некоторый код;
imgAvatar.ImageUrl = url;
Ответ №1:
Вы можете отключить кэширование страницы, добавив следующие опции
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.Buffer = true;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.AppendHeader("Cache-Control", "no-store");
Response.Expires = -1441;
Ответ №2:
Другой способ избежать кэширования отдельных компонентов — это то, что Джоэл обсуждал в раннем подкасте StackOverflow: прикрепите уникальный идентификатор в качестве http-параметра в конце URL-адреса компонента, которого вы хотите избежать кэширования. Затем обновляйте этот идентификатор всякий раз, когда вам нужно убедиться, что пользователи получают новую версию.
Итак, если ваш URL-адрес «http://www.mysite.com/images/myimage.png » тогда вы могли бы использовать «http://www.mysite.com/images/myimage.png?v=20110819a «
Примечание: Обычно этот трюк больше применим для Javascript и / или CSS, чем для изображений.