Как реализовать эту политику управления кэшем в PHP? - PullRequest
0 голосов
/ 03 мая 2010

Служить новым контентом, только если файл изменился с момента последнего посещения.

Как мне это реализовать?

UPDATE

Извините, что не упомянул об этом раньше, но запрашиваемый ресурс - это веб-страница, которая запрашивается напрямую, а не изображение.

1 Ответ

2 голосов
/ 03 мая 2010

Вы можете использовать трюк, позаимствованный у рельсов, и добавить время последнего изменения файла к включенному:

$fileName = 'image.jpg';
$httpLink = $fileName . '?' . filemtime( $fileName );
echo '<img src="', $fileName, '" alt="blah" />';

Будет выведена ссылка типа

<img src="image.jpg?1002412" alt="blah" />   

Затем при изменении файла строка запроса также изменится, и браузер запросит «новый» файл, т.е.

<img src="image.jpg?1003622" alt="blah" />

В качестве альтернативы вы можете вести локальный журнал версий файлов и считывать номер версии из базы данных, а не из файловой системы, что может быть незначительно быстрее (и сохранять чтения файловой системы, хотя это и не является существенным отличием - в зависимости от загрузки БД и веб-сервера ).

...