Чтобы уменьшить количество запросов http, а также упростить процесс развертывания файлов js / css, я настроил приложение php для объединения файлов js и css.Все включенные файлы последовательно объединяются в один большой файл с использованием двухбуквенных кодов для каждого файла (например, home.js code = "AA").Чтобы сгенерировать имена, я объединяю все коды в порядке их загрузки, добавляю подчеркивание, затем метку времени (например, «AABACE_12345678.js»).Затем в каталоге они обслуживаются, и я использую директиву apache в htaccess для анализа файлов с помощью php (sing sethandler), чтобы я мог контролировать заголовки и возвращать 301 заголовки в неизмененном виде.
К сожалениюэто не работает ... Я проверил это дерьмо с помощью сетевой панели Firebug и liveHTTPHeaders.Страница загружает файл каждый раз, даже если он должен быть в кеше.Вот пример заголовков ответов, которые возвращает один из файлов:
Date Wed, 14 Jul 2010 17:00:28 GMT
Cache-Control private
Content-Encoding gzip
Etag "4b4a6d50f9acf924b9dce14e415f5c78"
Expires Wed, 28 Jul 2010 17:00:28 GMT
Vary Accept-Encoding
X-Powered-By PHP/5.2.6
Last-Modified Wed, 14 Jul 2010 16:59:35 GMT
Content-Length 39305
Content-Type text/css
Примечание: я пропустил некоторые заголовки, не связанные с кэшированием, такие как keepAlive, server и т. Д.
Я должен такжеобратите внимание, что я условно распаковываю контент, отсюда и заголовок private cache-controlЧто мне здесь не хватает?Содержимое должно быть кэшировано из-за заголовка expires.Я генерирую etag из md5 с именем файла + отметка времени, так что он никогда не изменяется для файла.Last-Modified никогда не изменяется, Expires никогда не меняется ....
[EDIT]
Поэтому после дальнейшего тестирования мои css-файлы кэшируются, но мой javascriptне.Если у меня есть два файла с IDENTICAL заголовками кэширования (etag, expires, last-updated, cache-control), но единственное, что отличается, это тип содержимого (один "text / css", один "text / javascript"), ТОЛЬКО cssкешируется ... расстраивает