Кэширование из URL со строкой запроса - PullRequest
7 голосов
/ 12 мая 2009

Веб-приложение, над которым я работаю, предоставляет изображения с URL-адресами, такими как /image?name=a.gif. Страницы загружаются медленно частично из-за того, что браузеры не кэшируют изображения.

Существует ли какая-либо комбинация заголовков http, которая убедит IE кэшировать изображения, даже если в URL есть строка запроса? Я пытаюсь избежать того, чтобы браузер делал ненужные запросы (включая запросы типа if-Modified-Since)

Я доволен решением, которое работает только с IE (6+). Кроме того, я знаю, что могу избежать этой проблемы путем переписывания URL - мне просто интересно лучше понять кеширование браузера.

Спасибо

Ответы [ 2 ]

9 голосов
/ 03 апреля 2011

Обычно считается, что многие старые браузеры (включая IE6) и некоторые старые версии кешей, таких как Squid, не будут кэшировать ни один файл, к которому прикреплена строка запроса, независимо от даты истечения срока действия.

Более надежной альтернативой версионности в строке запроса является размещение информации о версиях в пути, например:

site/static/23212903/css/bundle.css

Или:

site/images/logo.r23212903.png

Более подробная информация - отличная статья о правильной настройке заголовков кэша. Автор Сергей Чернышев.

4 голосов
/ 12 мая 2009

Установите заголовок expires на вашем веб-сервере на какую-то далекую дату.

...