Назад | Перейти на главную страницу

Как я могу настроить Apache, чтобы клиенты кэшировали изображения, но при этом проверяли наличие обновлений?

Я хотел бы настроить виртуальный хост Apache, чтобы браузеры кэшировали изображения локально, но каждый раз перед отображением изображений проверяли наличие обновлений на сервере.

У меня есть это сейчас:

<VirtualHost *:80>
    ServerName cdn.localhost
    DocumentRoot /Users/chad/development/support/cdn

    FileETag None
    <Directory /Users/chad/development/support/cdn>
        AllowOverride None
        Order Deny,Allow
    </Directory>
</VirtualHost>

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

Я знаю, что могу отключить кеширование вот так

FileETag None
<Directory /Users/chad/development/support/cdn>
    AllowOverride None
    Order Deny,Allow

    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers "Content-Type"

    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</Directory>

но я не хочу его полностью отключать.

Итак, как я могу указать браузерам кэшировать изображения, но при этом проверять наличие обновлений на сервере?