nginx + minify
Alexander Moskalenko
alexander.moskalenko на gmail.com
Пт Сен 2 08:27:28 UTC 2011
У нас написан метод который выбирает из конфига приложения список CSS/JS
файлов которые нужно склеить, есть разделение на глобальные файлы и по
разделам сайта.
Метод вырезает комментарии, лишние пробелы и т.д., потом складывает все
полученное в 1 файл css/js, делает gzip и после этого складывает в
необходимое место, которое заранее определено и на страницах подключаются
уже готовые сжатые стили/скрипты в зависимости от того на какой странице
находится пользователь.
По поводу выигрыша - сейчас уже точно не помню цифр, но было существенное
ускорение загрузки и отрисовки страниц.
Есть сервисы типа http://tools.pingdom.com либо плагины к браузерам Page
Speed, Firebug, .... с помощью которых Вы сможете увидеть эффект для
конкретно вашего случая.
2011/9/2 Илья Шипицин <chipitsine at gmail.com>
> по идее keep-alive дает аналогичный эффект, что и склеивание файлов
> (ну, оверхед на http-заголовках чуть выше), keep-alive браузерами
> поддерживается из коробки.
> а добиться высокой скорости отображения - на отдельных файлах проще
> (по мере загрузки), чем одним большим файлом.
>
> расскажите, как вы количественно оценивали выгоду от склейки файлов ?
> и как вы делаете minify ? из Makefile-а чем-нибудь типа Microsoft Ajax
> Minifier или из PHP на лету ?
>
>
> 1 сентября 2011 г. 1:35 пользователь Alexander Moskalenko
> <alexander.moskalenko at gmail.com> написал:
> > Даже не обязательно так, у нас написан специальный метод, который
> вызывается
> > руками после изменений в CSS/JS.
> > Метод генерит все необходимое, в том числе .gz
> >
> > 2011/8/31 Igor Sysoev <igor at sysoev.ru>
> >>
> >> On Wed, Aug 31, 2011 at 08:09:22PM +0300, Gena Makhomed wrote:
> >> > On 31.08.2011 16:47, Igor Sysoev wrote:
> >> >
> >> > >> Чтобы склеивать эти все файлы вместе и
> >> > >> передавать как один, запускается PHP script.
> >> > >> Он создаёт соответствующий склеенный
> >> > >> файл и в следующий раз читает его уже с
> >> > >> диска. Работает это значительно
> >> > >> быстрее чем если загружать все четыре
> >> > >> CSS файла по отдельности через<link href...>
> >> > >> для каждого.
> >> >
> >> > скорее всего, это http://code.google.com/p/minify/
> >> > или что-то подобное.
> >> >
> >> > > Да, но какова цена этой склейки.
> >> > > Почему бы не склеить их в статический файл для nginx'а,
> >> > > да ещё и сделать .gz вариант ?
> >> >
> >> > таким образом будет проще настраивать, если для разных
> >> > страниц надо подключать разные наборы стилей/скриптов.
> >> >
> >> > когда можно сделать 1 файл style.css/style.css.gz
> >> > и 1 файл script.js/script.js.gz - тогда все просто,
> >> > в момент выкладывания новой версии сайта на сервер
> >> > скриптом просто заново перестраиваются эти 4 файла.
> >> >
> >> > а когда таких комбинаций файлов css/js десятки и сотни,
> >> > то появляется большое количество ручной работы, которую
> >> > не совсем понятно как можно автоматизировать без глюков.
> >>
> >> Зачем руками ? Есть Makefile.
> >>
> >> Например, nginx.org (не самый большой сайт, конечно) транслируется из
> XML
> >> в HTML с помощью xsltproc. Потом rsync'ается в каталог, где для файлов
> >> делается .gz, а потом это снова rsync'ается в каталог веб-сервера. Всё,
> >> что нужно сделать после изменений (как в XML, так и в XSLT), это
> >>
> >> make all gzip copy
> >>
> >>
> >> --
> >> Игорь Сысоев
> >> http://sysoev.ru
> >>
> >> _______________________________________________
> >> nginx-ru mailing list
> >> nginx-ru at nginx.org
> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20110902/bbe32035/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru