Ускорение загрузки веб-сайта на Ruby on Rails
Поигрался я на днях с интересным плагином к Firefox – YSlow от Yahoo и понял на сколько плохи дела у меня с оптимизацией загрузки веб-сайта. Очень полезная утилита, советую всем веб-мастерам, разработчикам и гикам.
Для рельсов как всегда есть готовые дрезины, ой плагины :-) Поэтому сделать все получилось довольно быстро, не считая некоторого шаманства с typo.
Есть две статьи по которым можно в элементаре поставить плагин и настроить на свой Rails-проект. Поэтому просто привожу на них ссылки – Сам плагин, с документацией и YSlow and Rails performance.
Пошагово:
./script/plugin install http://sbecker.net/shared/plugins/asset_packagerrake asset:packager:create_ymlvim config/asset_packages.yml. См. мой вариант ниже.rake asset:packager:build_all- Правим темплейт
<%= javascript_include_merged :base %>, тоже для css –<%= stylesheet_link_merged :base %> - Рестартуем (если надо) ruby- процесс.
Особенности движка typo. В app/helpers/articles_helper.rb есть специальный хелпер (page_header) для построения заголовка страницы, так вот вставку javascript надо делать именно там, а не в темплейте.
Так в чем же суть убыстрения? В том, что asset_packager пакует все css/js файлы в один (соответственно один js и один css файл). Плюс оптимизирует сам код – удаляет комментарии, лишние пробелы. Получаются в итоге два очень хорошо утрамбованные статические файла, которые еще при отдаче со сжатием (gzip) вообще будут грузиться моментально. Для примера по статистике YSlow livedev.org стал грузиться в два раза быстрее.
Мой config/asset_packages.yml
---
javascripts:
- base:
- cookies
- prototype
- effects
- typo
stylesheets:
- base:
- theme/layout
- theme/content
- theme/body





