Я обслуживаю изображения двумя разными способами:
- Использование сценария PHP для изображений профиля, например
- Указывая на них напрямую, например, на иконки и фон
Я нахожусь в процессе обработки их кэширования должным образом, и я совершенно новичок в этом.
Для сценария PHP я просто добавляю к ответу заголовок Last-Modified
и доставляю 304 status code
, если он вызывается снова, , если файл не изменился (с использованием filemtime()
).
Для прямого доступа я использую HTACCESS, но каждое правило, которое я видел до сих пор, не позволяет мне делать то же самое, что и в моем скрипте PHP (проверка, изменился ли файл, затем обслуживание 304 или самого файла). ).
Вот правило HTACCESS, которое я планирую использовать:
Header unset Pragma
FileETag None
Header unset ETag
# cache images/pdf docs for 10 days
<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=864000, public, must-revalidate"
Header unset Last-Modified
</FilesMatch>
Насколько я понимаю, единственный способ обновить кэшированное изображение - это переименовать его. Кто-нибудь знает способ обойти это? Например, проверяя дату последнего изменения изображения?