Как я могу вернуть gzipped css / js - PullRequest
0 голосов
/ 28 июня 2010

Я использую .NET и простой вопрос:

Как или можно сообщить веб-браузеру, что

<script type="text/javascript" src="/Scripts/myjsfile.js"/>

разархивирован?

можно просто добавить .gz к источнику?

В этой замечательной статье показано, как сжать мой динамический html, подключившись к объекту потока Response.Filter для возврата сжатого содержимого. Но мои css / js не динамичны, поэтому я не вижу смысла тратить циклы ЦП на сжатие для каждого отдельного запроса.

Итак, как мне сообщить веб-браузеру, что это заархивированный контент, или он уже знает?

Ответы [ 2 ]

0 голосов
/ 28 июня 2010
#####################################################
# CONFIGURE media caching
#
Header unset ETag
FileETag None
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$">
Header unset Last-Modified
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT"
Header set Cache-Control "public, no-transform"
</FilesMatch>
#
#####################################################

Измените "FilesMatch" на все, что вы хотите сжать.Сервер автоматически сожмет ваши несжатые файлы в файл gzip, отправит его в браузер, а браузер разархивирует файл обратно в исходную форму.

0 голосов
/ 28 июня 2010

Метка ответа с заголовком:

Content-Encoding: gzip

ОБНОВЛЕНИЕ: Я только что понял, что ответил на ваш буквальный вопрос - как клиент узнает - но не то, что вам нужно сделать на сервере, чтобы заставить его отправлять такие сообщения. К сожалению, я не работаю с IIS, поэтому не могу дать вам умный ответ.

Если никто не отвечает вам, вы можете делать динамические вещи самостоятельно, и это не намного медленнее. В основном Apache делает следующее:

  • Проверяет, включает ли заголовок Accept-Encoding запроса gzip.
  • Если это так, тогда проверяется, есть ли filename + ".gz" файл
  • Если это так, отправьте это, пометив его Content-Encoding: gzip и соответствующим Content-Type
  • Если нет, проверьте, есть ли filename, отправьте его, если он существует
  • Если это не удастся, 404.

Вы также можете сказать это gzip файлам на лету; это более экономно в пространстве, поскольку вы не сохраняете две версии файла на диске, а медленнее (потому что вам нужно сжимать при каждом запросе).

...