Гринкевич Евгений Вадимович.
К сожалению его сайт канул в лету, но так сказать, дела живут. Очень полезная штука и работает на ура. На основе её сделаны плагины к вп и другим движкам. А все очень просто.
В корне создаем файлик jscss.php с таким вот содержанием.
<? /* /* Скрипт для сжатия загружаемых пользователем JS и CSS файлов. Автор: Гринкевич Евгений Вадимович. Источник: http://www.ewgenij.net/ Надеюсь, Вам не нужно объяснять, что интеллектуальная собственность, это Вам не [eq собачий. /* */ /* НАСТРОЙКИ */ // Куда сохранять сжатые файлы. Поставьте права на запись для каталога. // Если каталога не существует, он скорее всего будет создан, если // ничего не перемудрить. Лучше оставить как есть сейчас. $sCachePath = $_SERVER['DOCUMENT_ROOT'] . '/cache/jscss/'; // 0 - не сжимать, 9 - максимальное сжатие. $iEncodingLevel = 8; // Файлы можно кэшировать и на стороне клиента. // 60с. * 60м. = 3600c. = 1 час ускоренной работы сайта. $iExpiresOffset = 3600; /* ######### */ // Будьте любезны, дальше ничего не исправляйте самостоятельно :). Спасибо! // По умолчанию здесь файл, относитьельно DOCUMENT_ROOT // не по умолчанию за деньги :) $sURL = $_SERVER['REQUEST_URI']; $sDR = $_SERVER['DOCUMENT_ROOT']; $bGzip = false; $sEnc = ''; $sourceFile = $sDR . $sURL; $cacheFile = $sCachePath . $date . '_' . $sCachedName; // если указано, что браузер принимает что-то нестандартное { { // если дальше все упакуется и не пакуется по умолчанию из-за настроек { $bGzip = true; } } } if ($bGzip) { // если нет кэша (возможно из-за изменения даты модификации файла) { // удаляем возможные остатки предыдущих версий removeOldCache($sCachedName); // проверяем путь к папке кэша и пакуем forcePath($sCachePath); putFileContents($cacheFile, $cacheData); } // отдаем запакованную версию echo getFileContents($cacheFile); } // если дошли до этого места, то gzip скорее всего не поддерживается echo getFileContents($sourceFile); /* Внутренние Функции */ function removeOldCache($sFileName) { global $sCachePath; { { } } } function getFileContents($sFile) { $sContent = ''; if (!$fp) return ''; return $sContent; } function putFileContents($sFile, $sContent) { if ($fp) { } } function forcePath($sPath, $chmod = 0755) { $p = ''; $r = false; foreach ($dd as $d) { $p .= $d . '/'; } return $r; } ?>
В файл .htaccess добавляем пару строк
# JSCSS-Packer. RewriteRule (\.js)$ jscss.php [L] RewriteRule (\.css)$ jscss.php [L]
Да в папку кеша можно добавить файл .htaccess с таким содержанием
deny from all
FileETag MTime Size
<ifmodule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>
По Firebug, с установленным Padge Speed выигрыш очень ощутимый