Ссылочные файлы JavaScript GZipped не работают - PullRequest
0 голосов
/ 25 ноября 2010

Эта платформа, над которой я работаю, использует некоторые механизмы, чтобы определить, должна ли она делать ссылку <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

Ответы [ 2 ]

0 голосов
/ 25 ноября 2010

Если вы используете Apache, возможно, на вашем прежнем веб-сервере было включено MultiViews , но на вашем текущем веб-сервере нет. Попробуйте включить его и на текущем сервере (хотя бы для этого каталога):

Options +MultiViews
0 голосов
/ 25 ноября 2010

Это будет настройка / модуль на стороне сервера - клиенты не знают, как обращаться с gziped файлами , однако они обычно знают, как обрабатывать файлы, сжатые при передаче, если вы скажете им, как вы сжал их, используя заголовок Content-Encoding.

В основном, я думаю, вы обнаружите, что сервер не отправляет заголовок Content-Encoding: gzip на новый сервер, а на старый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...