Сжатый JavaScript не обслуживается должным образом - PullRequest
1 голос
/ 28 июля 2011

У меня есть js file and a gzipped version этого js-файла.

Проблема, с которой я сталкиваюсь, заключается в попытке предоставить gzip-версию этого js-файла браузерам, которые его поддерживают.

Я не знаю, как это сделать. Если я добавлю js.gz к текущему элементу скрипта, он не будет загружен и выдает ошибку.

Как автоматически передать gzip-версию этого js в поддерживаемые браузеры.

Также я хотел бы ограничить gz, обслуживающий папку /resources/widget/

Я don't want to compress on the fly, поскольку у меня есть 1000 requests per second, и потребуется несколько минут, чтобы отключить сервер. Каждый файл js составляет около 100 КБ, а файл js.gz - около 16 КБ, поэтому я был бы признателен, если бы мне помогли с текущими файлами.

Ответы [ 4 ]

4 голосов
/ 30 июля 2011
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} “.*Safari.*” [OR]
RewriteCond %{HTTP:Accept-Encoding} !gzip
RewriteRule (.*)\.jgz$ $1\.js [L]

AddType “text/javascript;charset=UTF-8″ .jgz
AddEncoding gzip .jgz

переименуйте ваши файлы из .gz в .jgz

ИЛИ используйте

<FilesMatch "\\.js.gz$">
  ForceType text/javascript
  Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch "\\.js$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.js$ $1\.js.gz [L]
  ForceType text/javascript
</FilesMatch>
1 голос
/ 28 июля 2011

Я столкнулся с проблемами в некоторых браузерах (особенно в Safari), которые не работают должным образом, когда расширение имени файла было «.gz». Нам пришлось обойти это, переименовав файлы в «.jgz»

0 голосов
/ 28 июля 2011

если вы используете php:

В вашем файле htaccess:

RewriteEngine On
RewriteRule (.*)\.js compress-js.php?file=$1.js [L]

compress-js.php:

ob_start("ob_gzhandler");
header("Content-type: text/javascript; charset: ISO-8859-1");
echo (file_get_contents ($file));  

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

Просто добавьте эти 2 файла .htaccess и compress-js.php в папку js или в любое место, где вы их храните.

0 голосов
/ 28 июля 2011

Вы можете использовать httacces для gzip для вас, для браузеров, которые его поддерживают:
см:
http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

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