Часто случается, что делая большой проект в конце концов выходит куча отдельных javascript'овых файлов вроде библиотек, плагинов к ним и прочих. Так же, переодически можно встретить и несколько CSS, которые в основном делаются для удобства восприятия. Так же, по-хорошему, все это дело снабжено рядом комментариев, чтоб потом хоть как-то в этом разобраться.
Благодаря тому, что на Rails development и production версии разделяются, с помощью плагина asset_packager можно наладить автоматический процесс сжатия всех js и всех css файлов в 2 файла с вырезанием всех комментариев.
Т.е. получится, что в development версии у вас будет нормально поддерживаимые скрипты и стили, а в production все будет объединино для ускорения загрузки (п.с. в основном браузеры не поддерживают параллельную загрузку js и css файлов).
Ставите например вызов яваскрпта в вашем layout:
<%= javascript_include_merged 'prototype', 'effects', 'controls', 'dragdrop', 'application', 'foo', 'bar' %>
В девелопмент версии вы получите:
А в продакшене:
Точно так же и со стилями:
Вызов <%= stylesheet_link_merged 'screen', 'header' %> сделает в девелопменте:
А в продакшене:
Удачи в использовании!
Благодаря тому, что на Rails development и production версии разделяются, с помощью плагина asset_packager можно наладить автоматический процесс сжатия всех js и всех css файлов в 2 файла с вырезанием всех комментариев.
Т.е. получится, что в development версии у вас будет нормально поддерживаимые скрипты и стили, а в production все будет объединино для ускорения загрузки (п.с. в основном браузеры не поддерживают параллельную загрузку js и css файлов).
Как пользоваться
- Устанавливаем плагин:
script/plugin install sbecker.net/shared/plugins/asset_packager
или
script/plugin install git://github.com/sbecker/asset_packager.git
- Запускаем «rake asset:packager:create_yml» чтобы сгенерировать конфиг /config/asset_packages.yml в первый раз. В нем описываем какие файлы и в каком порядке объединять (синтаксис — простейший yaml конфиг)
- Запускаем «rake asset:packager:build_all» чтоб сгененировать сжатые файлы. Каждый раз, когда вы переписываете конфиг, вам надо запускать задачу опять.
Как работает
Ставите например вызов яваскрпта в вашем layout:
<%= javascript_include_merged 'prototype', 'effects', 'controls', 'dragdrop', 'application', 'foo', 'bar' %>
В девелопмент версии вы получите:
А в продакшене:
Точно так же и со стилями:
Вызов <%= stylesheet_link_merged 'screen', 'header' %> сделает в девелопменте:
/>
/>
А в продакшене:
/>
Удачи в использовании!