2012-03-18 2 views
1

Вместо того чтобы полагаться на сервер для gizip compress css и js-файла, это хорошая/плохая идея, чтобы gzip-файл, хранить их на сервере и ссылаться на эти файлы в html.gzip files as html source

Вместо

<script src="../Scripts/compiled.js"></script> 

Имейте это:

<script src="../Scripts/compiled.js.gzip"></script> 

И то же самое с помощью CSS?

Я пробовал, но он не работает; файлы, похоже, не распаковываются. Я получаю Resource interpreted as Stylesheet but transferred with MIME type application/x-gzip: Возможно ли это?

ответ

3

Ваш файл Gzip должен иметь заголовок ответа Content-Encoding: gzip в то время как Content-Type должен быть text/javascript для файлов JavaScript или text/css для CSS файлов.

Для меня, следуя правила .htaccess делает работу:

AddEncoding x-gzip .gz 

RewriteEngine On 

RewriteCond %{HTTP:Accept-encoding} gzip 
RewriteCond %{REQUEST_FILENAME}.gz -f 
RewriteRule ^(.*)$ $1.gz [QSA,L] 

<FilesMatch \.js\.gz$> 
    ForceType "text/javascript; charset=utf-8" 
    Header set Cache-control: private 
</FilesMatch> 

Header set Vary: Accept-Encoding может быть использован вместо Header set Cache-control: private, чтобы предотвратить возвращающуюся версию с gzip'нутой для пользовательских агентов, которые не поддерживают Gzip сжатие.

.htaccess файл должен быть размещен в каталоге, который содержит js.

Gzipped и nongzipped версии должны быть размещены бок о бок (имя файла для версии gzipped содержит .gz postfix). Gzip-кодированная версия возвращается прозрачно (если существует версия .gz, и браузер поддерживает Gzip, за который отвечает заголовок запроса Accept-encoding) при запросе обычного файла без Gzip, явно указанного в его URL-адресе.

P.S. Ах, вы используете ASP.net, и поэтому он, очевидно, работает под IIS. Ну, последние версии IIS имеют функциональность .htaccess, AFAIK.

+0

Yup, я использую asp.net – frenchie

+0

Марат: Почему у вас есть контроль кеша: частный? –

+0

Fenchie: Я не думаю, что предварительное сжатие в IIS можно выиграть, поскольку IIS хранит сжатую версию файлов на диске. –