Я использую предварительно скомпилированные CSS-файлы и JS-файлы, так что сервер не делает этого «на лету».Настройки Apache для отправки gzipped файлов CSS/JS в браузер
Так что в той же папке у меня есть файл.css (версия gzipped), file.nozip.css (версия nogzipped). Затем, в зависимости от того, принимает ли браузер файлы gzipped или нет, отправьте правильную версию.
Так у меня есть следующие в файле .htaccess:
RewriteEngine On
RewriteRule ^(.*)\.[0-9]+\.css$ $1.css [L]
#redirect Konqueror and "old browsers"
RewriteCond %{REQUEST_FILENAME} !\.nogzip\.css$
RewriteCond %{HTTP:Accept-encoding} !gzip [OR]
RewriteCond %{HTTP_USER_AGENT} Konqueror
RewriteRule ^(.*)\.css$ $1.nogzip.css [L]
<IfModule mod_headers.c>
Header set Vary User-Agent
#set Content-Encoding for all css files
<FilesMatch .*\.css$>
Header set Content-Encoding: gzip
Header set Cache-control: private
</FilesMatch>
#drop Content-Encoding in case we send not gzipped file
<FilesMatch .*\.nogzip\.css$>
Header unset Content-Encoding
</FilesMatch>
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A36000000
</IfModule>
Этот подход я использовал много раз, прежде чем и как на Windows, а также на серверах Linux. Работал отлично.
Однако в последнее время при разработке другого сайта я сталкиваюсь с проблемой, когда браузер не распознает gzipped-файл как gzipped.
На локальном хосте работает, вот заголовок ответа:
Accept-Ranges:bytes
Cache-control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:39115
Content-Type:text/css
Date:Wed, 17 Jun 2015 11:27:28 GMT
ETag:"98cb-517998d9e690c"
Keep-Alive:timeout=5, max=100
Last-Modified:Wed, 03 Jun 2015 09:19:16 GMT
Server:Apache/2.4.12 (Win64) OpenSSL/1.0.1m PHP/5.6.9
Vary:User-Agent
X-Distributed-by:AHC
Вот заголовок, полученный от сервера производства (не работает - файл CSS отображается как промелькнул в браузере):
Accept-Ranges:bytes
Cache-control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:39099
Content-Type:text/css
Date:Wed, 17 Jun 2015 11:30:08 GMT
ETag:"98cb-517998d8fcd00-gzip"
Keep-Alive:timeout=5, max=99
Last-Modified:Wed, 03 Jun 2015 09:19:16 GMT
Server:Apache/2.4.10 (Debian)
Vary:User-Agent
Единственное отличие - «X-Distributed-by: AHC», но это вряд ли станет причиной проблемы.
Любые идеи, что еще проверить?
У меня такая же проблема. Вы решили это? –