Как мне установить заголовок not cache для html-файла, используя apache? - PullRequest
1 голос
/ 18 февраля 2009

Я делаю немного ajax, где я получаю статический html-файл, который время от времени меняется на диске. Конечно, у IE есть проблема, когда он хочет помочь, кэшируя файл, который мне не нужен. Я знаю, как это исправить при получении динамического файла: вы просто меняете заголовок в динамическом файле. Но как мне сделать это для статического файла HTML? Обратите внимание, что я использую apache.

Спасибо

Ответы [ 2 ]

3 голосов
/ 18 февраля 2009

На уровне Apache вы можете установить дату истечения срока действия документа с помощью модуля mod_expires.

Из документации:

Этот модуль управляет настройкой HTTP-заголовка Expires и директивы max-age HTTP-заголовка Cache-Control в ответах сервера. Дата истечения срока может быть установлена ​​относительно времени последнего изменения исходного файла или времени доступа клиента.

Эти HTTP-заголовки являются инструкцией для клиента о действительности и сохранности документа. В случае кэширования документ может быть получен из кэша, а не из источника, пока не пройдет это время. После этого копия кэша считается «просроченной» и недействительной, и из источника должна быть получена новая копия.

Подробнее на http://httpd.apache.org/docs/2.0/mod/mod_expires.html

1 голос
/ 18 февраля 2009

Если вы можете использовать mod_expires, как предложил Марсель, вы всегда можете добавить случайный параметр запроса.

Например, вместо запроса static_file.html вы можете запросить static_file.html?_=1231231231 и каждый раз изменять этот параметр запроса.

jQuery имеет очень простой способ сделать это:

$.ajax({cache: false, url: static_file.html});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...