Опишу проблему. Есть достаточно посещаемый ресурс. Понятное дело, что в htaccess настроено кеширование js и css файлов.
Например:Header set Cache-Control "max-age=604800, public"
Это ощутимо ускоряет отображение страниц. Но периодически на сайте проводяться разные работы, что-то меняется. В результате содержимое этих самых js и css файлов дополняется. Пользователь, у которого они закешированы старые версии в результате видит ошибки джаваскрипта или подгулявшую верстку.Итак вопрос. Как сохранить кеширование, но чтобы загружались новые версии файлов css/js, как только они изменятся?
Понятно, что можно отключить кеширование по времени и сервер будет ориентироваться на значение ETAG, но хочется избежать и таких HTTP запросов тоже.
>Итак вопрос. Как сохранить кеширование, но чтобы загружались новые версии файлов css/js,
>как только они изменятся?
>Понятно, что можно отключить кеширование по времени и сервер будет ориентироваться на
>значение ETAG, но хочется избежать и таких HTTP запросов тоже.Если не видел, почитай: http://developer.yahoo.com/performance/rules.html#expires
>Итак вопрос. Как сохранить кеширование, но чтобы загружались новые версии файлов css/js,
>как только они изменятся?
>Понятно, что можно отключить кеширование по времени и сервер будет ориентироваться на
>значение ETAG, но хочется избежать и таких HTTP запросов тоже.При подключении CSS+JS файлов в HTML добавляй в путь дату модификации файла.
Например, http://URL/mu.js?ver=123456, где 123456 берем из filemtime($filename).Пока файл не изменялся, действует кеширование. Как только файл обновился — он будет перечитан заново. Не забываем очищать кеш HTML страниц перед этим, если он, конечно, реализован. Проблемы как рукой снимет ;-)
По крайней мере, такую реализацию я видел в FarbaSite cms.