Сжатие CSS и JS «на лету»

Рубрика: Разное | Сен 12, 2010

Сегодня я расскажу как «на лету» сжимать css и js файлы без потери производительности. Данный метод очень эффективен и позволяет ещё немного ускорить загрузку сайта. Реализуется это всё одним php скриптом. Данный скрипт будет удалять лишние пробелы и символы в js и css файлах, а уже после отправлять их в браузер.


Сжимаем CSS и JS

Gzip сжатие

Итак, создаём файл gzip.php и ложем его в корень сайта, после прописываем в него код:

<?php
ob_start («ob_gzhandler»);
if( isset($_REQUEST['file']) ){
$fl = $_REQUEST['file'];
$extention = end(explode(«.», $fl));
switch($extention){
case ‘css’:$contenttype = ‘css’;break;
case ‘js’:$contenttype = ‘javascript’;break;
default:die();break;
}
header(‘Content-type: text/’.$contenttype.’; charset: UTF-8′);
header («cache-control: must-revalidate»);
$ost = 60 * 60;
$expr = «expires: » . gmdate («D, d M Y H:i:s», time() + $ost) . » GMT»;
header ($expr);
$gzdata = file_get_contents($fl);
$gzdata = compress($gzdata);
echo $gzdata;

}

exit;

function compress($buf) {
$buf = preg_replace(‘!/*[^*]**+([^/][^*]**+)*/!’, », $buf);
$buf = str_replace(array(«rn», «r», «n», «t», ‘  ‘, ‘    ‘, ‘    ’), », $buf);

return $buf;

}

Не забываем сохранить ;). Далее начинаем редактировать файл .htaccess:

RewriteEngine On
RewriteRule ^(.*).css$ /gzip.php?file=$1.css [L]
RewriteRule ^(.*).js$ /gzip.php?file=$1.js [L]

Готово! Можно проверить производительность сайта и наслаждаться результатом.

Тэги:

Комментарии закрыты.

Ключи для Windows 7
обновление 26.03.2015

Реклама