Ваш файл Gzip должен иметь заголовок ответа Content-Encoding: gzip
в то время как Content-Type
должен быть text/javascript
для файлов JavaScript или text/css
для CSS файлов.
Для меня, следуя правила .htaccess
делает работу:
AddEncoding x-gzip .gz
RewriteEngine On
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
<FilesMatch \.js\.gz$>
ForceType "text/javascript; charset=utf-8"
Header set Cache-control: private
</FilesMatch>
Header set Vary: Accept-Encoding
может быть использован вместо Header set Cache-control: private
, чтобы предотвратить возвращающуюся версию с gzip'нутой для пользовательских агентов, которые не поддерживают Gzip сжатие.
.htaccess
файл должен быть размещен в каталоге, который содержит js.
Gzipped и nongzipped версии должны быть размещены бок о бок (имя файла для версии gzipped содержит .gz
postfix). Gzip-кодированная версия возвращается прозрачно (если существует версия .gz
, и браузер поддерживает Gzip, за который отвечает заголовок запроса Accept-encoding
) при запросе обычного файла без Gzip, явно указанного в его URL-адресе.
P.S. Ах, вы используете ASP.net, и поэтому он, очевидно, работает под IIS. Ну, последние версии IIS имеют функциональность .htaccess
, AFAIK.
Yup, я использую asp.net – frenchie
Марат: Почему у вас есть контроль кеша: частный? –
Fenchie: Я не думаю, что предварительное сжатие в IIS можно выиграть, поскольку IIS хранит сжатую версию файлов на диске. –