Эта платформа, над которой я работаю, использует некоторые механизмы, чтобы определить, должна ли она делать ссылку <script>
на файл .js
или .js.gz
в зависимости от типа браузера и версии.
На текущем сервере все работает нормально, и файлы js
и js.gz
работают, а javascript выполняется в браузере. Однако перенесите все это дословно на новый сервер, и Firefox внезапно перестанет использовать файлы gz
. Он загрузит их (как можно увидеть с помощью Firebug), но не выполнит их.
Есть какие-нибудь идеи о том, почему сжатые файлы не используются должным образом?
Заголовки ответа от старого
Date Thu, 25 Nov 2010 17:06:32 GMT
Server Apache
Last-Modified Mon, 22 Nov 2010 21:31:00 GMT
Etag "55808a3-3f1e-4ceae114"
Accept-Ranges bytes
Content-Length 16158
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Content-Type application/javascript
Content-Encoding gzip
Заголовки ответа от нового
Date Thu, 25 Nov 2010 17:00:11 GMT
Server Apache/2.2.17 (CentOS)
Last-Modified Thu, 25 Nov 2010 16:11:00 GMT
Etag "693c304-4178-495e2da08cd00"
Accept-Ranges bytes
Content-Length 16760
Connection close
Content-Type application/x-gzip
Я предполагаю, что это из Content-Encoding и Type, хотя я не знаю, как это изменить.
FIX
Принимая во внимание ответы и комментарии, я изменил следующее на /etc/httpd/conf/httpd.conf
, где закомментированные (#
) строки - это то, что было там, без комментариев - моя замена:
# Technically just uncommented this line
AddEncoding x-gzip .gz .tgz
#AddType application/x-gzip .gz .tgz
AddType application/x-gzip .tgz
AddType application/javascript .gz