2012-04-16 4 views
0

Мой первый пост здесь, здесь много читал, некоторые из которых были очень полезны. Однако, хотя в кэше браузера есть много сообщений, ни один из них не охватывает мою точку зрения ниже.Использование кеширования браузера и CSS-ссылок Изображения

Я обновляю наш веб-сайт и имею (как и многие) сталкиваются с этой проблемой кэширования браузера с использованием скорости страницы. Теперь вместо того, чтобы прыгать с пистолетом и изменять наш файл .htacess и застревать у пользователя, видя старый контент за недели & недель, я подумал, что лучше читать, проведя половину дня, делая это сейчас, я понимаю, что это такое, а также об «переборке» кэш ".

Я понимаю, что если я внес изменения в мой .css-файл или файл изображения, и я использовал отметку времени, которую он обновит, например top_nav.png? 123456 изменений в top_nav.png? 654321, это будет обновлено и повторно кэшироваться, поскольку браузер увидит это как новый актив.

Однако, скажем, у нас есть .css-файл, который сам по себе не обновляется, но одно из изображений в файле .css обновляется и ссылается с отметкой времени, из того, что я прочитал, браузер все равно будет используйте кешированную версию! Я прав..?

Это означает, что все изображения в файле .css будут удалены, что означает, когда изображение будет обновлено, и файл .css также будет обновлен, заставив браузер перезагрузить файл .css и, следовательно, изображение.

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

Заранее благодарен, Gary.

ответ

0

Вы правы в отношении изменения имени, заставляющего клиента обновлять файл. Однако кэширование не является рекурсивным; кешированный файл .css не означает, что изображения или другой контент, на который он ссылается, также кэшируются.

Например, у меня есть это в моем файле .htaccess:

<filesMatch "\.(xml|txt|js|css)$"> 
    Header set Cache-Control "max-age=172800, public, must-revalidate" 
</filesMatch> 

пользователь запрашивает index.html, который ссылается на файл CSS. Файл css также ссылается на некоторые образы .jpg. Если пользователь ранее посещал страницу, файл css кэшируется, но изображения .jpg будут перезагружены, так как они не установлены как кешированные в .htaccess.

+0

Hi @erikreed, Спасибо, что ответили, это был бы один из способов сделать это, я думаю. Однако, если я сделал кеширование файлов изображений, добавляющих png | jpg | и т.д. будет ли ссылка на изображение css затем кэшироваться ..? Затем это задает вопрос, будет ли обновление css-файлов приводить к обновлению всех ссылочных изображений ..? –

+0

Да, добавление 'png | jpg' приведет к кэшированию изображений, если они ссылаются на css. Обновление css не приведет к обновлению ссылочных изображений, если они были ранее заданы как кешированные - это не рекурсивно. – erikreed

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