В HEAD ревизии livestreet есть такая фича как склеивание нескольких .css и .js файлов их последующая компрессия (удаление лишних символов). Благодаря этому уменьшается количество клиентских запросов к серверу и размер загружаемых файлов, а значит увеличивается скорость загрузки страницы на стороне клиента.
Вот замер который я сделал после перевода живого сайта на последнюю версию ls (используется дефолтная тема «new»):
Теперь начитавшись статей и книжек по оптимизации скорости загрузки сайта на клиентской стороне (кстати советую "Разгони свой сайт"), а также посмотрев отчеты YSlow и webo.in я решил дополнительно сжимать html, css и js средствами веб-сервера (в моем случае это nginx).
Добавляю в конфиг nginx'a следующие строки (взято с книги, там же можно посмотреть конфиги для апача):
Но все равно веб-сервер будет повторять операцию сжатия для каждого нового пользователя. Если для html это неизбежно, то для .css и .js есть решение позволяющее сэкономить ресурсы процессора.
У веб серверов есть такая фича как отдача предварительно сжатых файлов. Т.е. добавив в конфиг nginx следующее правило (для апача опять же смотрите в книге):
мы говорим ему, что он должен отдавать не main.css (к примеру), а main.css.gz (если такой есть).
А вот для того чтобы автоматизировать создание этих самых «предварительно сжатых файлов» нужно открыть в редакторе «engine/modules/viewer/Viewer.class.php» и после строк:
/**
* Создаем новый файл и сливаем туда содержимое
*/
file_put_contents($sCacheName,$sContent);
// Это в методе метод Compress(). Примерно 806я строка.
добавить вот такой кусок кода:
/**
* Сжимаем и складываем в .gz архив для того, чтоб веб-сервер отдавал уже его
*/
file_put_contents($sCacheName . '.gz', gzcompress($sContent, 9));
Вот так все просто. Для красоты можно вынести уровень компрессии в конфиг ls.
PS. Кстати загрузку js неплохо бы в футер перенести. Тоже ускорит загрузку страницы на клиенте.
PS2. Хотелось бы перенести в «Tips & tricks»
2 комментария
В livestreet v.0.3.1 есть такая фича как склеивание нескольких .css и .js файлов их последующая компрессия
2 комментария
В 0.3.1 такой фичи нет. Только SVN версии.