Почему gzipped html файл отображается без JS и CSS? - PullRequest
1 голос
/ 15 мая 2009

У меня есть HTML-файл, сохраненный в формате gzip. Браузер отображает HTML-файл, но без JavaScript и CSS. Незаархивированные html-файлы в одном каталоге отображаются правильно. Кроме того, я сохранил исходный код из сжатого html-файла, и он снова открылся правильно с применением JS и CSS.

Что отличается в отображении сжатого HTML, который не позволил бы ему использовать JS и CSS?

Ответы [ 2 ]

3 голосов
/ 15 мая 2009

Основная проблема в том, что вы не можете просто отправить файл gzip, где браузер ожидает CSS. Само по себе это не работает больше, чем если бы вы вернули JPEG или бутерброд с ветчиной.

Когда содержимое архивируется на лету, ответ несколько отличается - ответ говорит: «Я text / css, но, оказывается, закодирован для передачи gzip». Браузер может понять это.

Некоторые веб-серверы, такие как Apache, будут делать такие вещи для вас, если вы также предоставляете сжатые файлы локально. Но я думаю, что ваш сервер не.

Почему это работает для HTML? Хм, я не знаю, может, вашему браузеру действительно удается это выяснить в данном конкретном случае?

В конечном итоге вы хотите отправить ответ с Content-Type: text / css и Content-Encoding: gzip, чтобы он был правильно распознан.

2 голосов
/ 16 мая 2009

если вы работаете с Localhost на своем собственном сервере (например, XAMPP)
тогда вам нужно настроить файл .htaccess для отправки прав
заголовки, в которых говорится, что файлы могут быть сжаты.

попробуйте добавить это в ваш основной файл .htaccess:

AddEncoding x-gzip .gz
AddType text/html .gz

и убедитесь, что ваш gziped сжат
файлы заканчиваются расширением .gz .

также всегда запускайте это на сервере ..:)

...