Apache2 с mod_deflate обслуживает плохие CSS и JS
У меня проблема с файлами css и js, которые используются как file.css.gz и file.js.gz на одном из включенных сайтов. Контент подается как этот бред:
û—Û6’0ú»ÿ
sæÚNZ²H½ZΉ¿yìN&9Iv¿yå5sï¡H¨Å˜5$Õïõ÷·_$ˆÂ£Šº“ݹg홸›¨*P P(^<ú÷#;Œþ”êѯ·å¡o“”ÞåÍèã×Ï^<úí¿}þÅ7£¯ò›ü`þóÙhÔý¶Ï‹‡7£=©Ÿò²ºJߌNUñòÅkV¿–D^ 3–¿NXÙ¼xuøÿú(gÛüþÅ+^{µOš—/Ø~òŒeã’7GöâÕÕ0©»r»DÚ_ðš¢5Õ‰WYßÞ|¤>É/€/k;BöéÅoF³é´ÿV7{3:„âÓg„xþí›ÕÂéÅõGvs*’ê±ëÈèVt¡Q(% <7L€(:b÷mPŒJf’rëeùE“yúXQ¶TtcÚß Aâˆ! D3L„2`ûéBùåÈO˪ßoË"{¬ð
Ý
В файле.htaccess в папке css и js для них есть следующее:
RewriteEngine on
# Make sure the browser supports gzip encoding before we send it
RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b
RewriteCond %{REQUEST_URI} .*\.css
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
# without it, Content-Type will be "application/x-gzip"
# also add a content-encoding header to tell the browser to decompress
<FilesMatch \.css\.gz$>
ForceType text/css
Header set Content-Encoding gzip
Header add Vary Accept-Encoding
</FilesMatch>
Я работаю на Ubuntu 14.04 apache2 2.4.7 с установленным mod_deflate при запуске apachectl -t -D DUMP_MODULES
это показывает deflate_module (shared)
а также headers_module (shared)
В чем может быть проблема?
1 ответ
Я решил свою проблему, добавив следующие строки в мой файл vhost conf:
<Directory /home/nexusstar/workspace/{{path to js folder}}/js>
AddEncoding gzip gz
ForceType text/javascript
</Directory>
<Directory /home/nexusstar/workspace/{{path to css folder}}/css>
AddEncoding gzip gz
ForceType text/css
</Directory>