Стандартный вопрос по очистке кеша

1) Меня смущает цель установки дат истечения срока действия заголовков для кэширования файлов css и js (например, как это делается в файле Boilerplate .htaccess).

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

2) Есть ли способ НЕ использовать версии файлов css и js и при этом автоматически обновлять их, когда я загружаю их на сервер. Я попытался установить более низкую дату истечения срока действия («доступ плюс 1 неделя» и «доступ плюс 0 секунд»), и браузер все еще отображал старую кешированную копию, когда я загружал обновленные файлы css и js. Хотя я не уверен на 100%, что сделал это правильно.

Спасибо :)


person Dave Stibrany    schedule 18.12.2010    source источник
comment
.. значит, вы имеете в виду html5boilerplate.com?   -  person zack    schedule 18.12.2010
comment
Ага :) Блин, мне нужно больше персонажей ^_^   -  person Dave Stibrany    schedule 18.12.2010
comment
Вы всегда должны устанавливать заголовки, чтобы сообщить браузеру (или прокси-серверу), как вы хотите, чтобы ваш контент кэшировался (или нет) - полагаясь на то, что браузер угадает это за вас, это означает, что он будет угадывать это, по крайней мере, некоторое время. Что еще более важно, если у вас есть изображение, которое вы хотите кэшировать в течение очень долгого времени, установка заголовка — лучший способ обеспечить его кеширование соответствующим образом.   -  person scunliffe    schedule 20.03.2011


Ответы (1)


1) Некоторые браузеры не кэшируют вещи, у которых нет срока годности.

2) Попробуйте добавить переменную get в конец строки URL-адреса для новых версий вашего веб-сайта, чтобы игнорировать кеш предыдущих версий. Идея состоит в том, чтобы преобразовать вашу строку URL-адреса во что-то вроде www.example.com/?v=1, а затем, когда вы измените ее на www.example.com/?v=2, браузер не распознает этот URL-адрес, поэтому он не использует кэшированные файлы. Когда пользователь вернется на www.example.com/?v=2, он получит доступ к кэшированным файлам для v2 вашего веб-сайта.

person Derek Adair    schedule 18.12.2010
comment
Мне было интересно, есть ли способ для браузера получать обновленные файлы БЕЗ использования кэширования. - person Dave Stibrany; 18.12.2010
comment
эээ... без версионирования, без кеширования - person Dave Stibrany; 18.12.2010
comment
Нет. Браузер должен видеть файл как новый файл. В противном случае он просто загружает то, что есть в кеше. - person scunliffe; 20.03.2011