У меня вопрос, связанный с методами недействительности кэша ... Я пытаюсь реализовать механизм для своего сайта, что автоматически отменяет кеш браузера (css, images ...). Я хочу иметь возможность программно аннулировать кеш браузера, когда я обновляю веб-сайт (меняю изображения или стили);ASP.NET - Недействительный кеш браузера
Например: для текущей версии, среди прочих, css и некоторые изображения были изменены. В этой ситуации я хочу, чтобы после завершения обновления, когда пользователь выполняет запрос на веб-сайт, кеш браузера автоматически становится недействительным, что заставляет повторно загружать новые изображения и стили. Это должно быть сделано только для первого запроса клиента ... из кеша должны быть извлечены следующие данные (поэтому вопрос о прагме без кэша не может быть и речи).
Вот что я пробовал: в BeginRequest обработчик событий, я добавил следующие строки: Response.Cache.SetCacheability (HttpCacheability.ServerAndPrivate); Response.Cache.SetETag ("\" e111293b17594f1487d136ea7e9314ac \ "");
это устанавливает ETag в заголовках ответов. Я полагал, что если я изменю этот ETag в каждой версии и задал его при каждом запросе, кеш будет признан недействительным, но, похоже, это не так. Я использовал Live HTTP-заголовки, чтобы увидеть результаты, и ETAG правильно настроен для ответа, но css и изображения все еще взяты из кеша ....
Любые идеи о том, как я мог бы это сделать, или если это может быть достигнуто вообще?
Заранее благодарен!
Это хорошая идея, но как насчет изображений ... не так-то просто разместить параметр запроса для каждой репликации изображения в проекте ... спасибо за ответ – GeoXYZ
Это все равно должно работать для изображений. Возможно, если все ваши изображения являются элементами управления сервером, вы можете переопределить событие страницы, возможно, onrender и найти все изображения и добавить дополнительный параметр URL – Bob
. Да, я знаю, что могу это сделать, но это не очень хорошая практика ... сначала из все, думаю, что я должен был бы сделать это на всех страницах с изображениями на них (потому что не только главная страница имеет изображения, но и пользовательские элементы управления также имеют изображения внутри); во-вторых, чтобы автоматизировать этот процесс (не нужно адаптировать код всякий раз, когда я добавляю еще один элемент управления изображением на странице), мне придется перебирать элементы управления страницей и находить только элементы управления изображением и изменять свойство imageurl. и это очень трудоемко, особенно если количество попаданий для этого элемента управления велико, что приводит к хиту производительности. – GeoXYZ