Как предоставить активы в движке Rails 3.1? Где они должны быть расположены и могут ли они автоматически включаться?
Оборотные активы с Rails 3.1
Ответ 1
Автоматически загружаются пути к папкам с ресурсами всех движков.
По умолчанию сами активы не загружаются. Это понятно, так как загрузка выполняется с помощью require_tree .
, которая загружает все css/js из текущей папки (то есть папки основных ресурсов приложения), но ничего не говорит об активах движков.
Простое решение - попросить пользователя потребовать js/css в application.js/css или где-нибудь еще. Когда пути загружаются правильно, пользователю нужно указать имя вашего актива (я бы рекомендовал использовать имя вашего движка). Пример:
Добавлен в main_app/app/assets/javascripts/application.js
:
//= require your_engine_name
Если вы разделили js в разных файлах, ваш файл your_engine_name/app/assets/javascripts/your_engine_name.js
мог бы иметь следующее:
//= require_tree .
Это загрузит все js файлы в your_engine_name/app/assets/javascripts/
, как "." относится к локальной папке (в данном случае папке вашего javascripts вашего двигателя).
Обратите внимание, что ActionView::Helpers::AssetTagHelper.register_javascript_expansion
оказывается недействительным при установке config.use_sprockets
. Надеюсь, в этом случае они, по крайней мере, сделают предупреждение.
Если у вас есть задача rake для установки вашего движка, вы можете добавить приложение в application.js.
Другим способом включения пользователя в него является вставка <%= javascript_include_tag "your_engine_name" %>
в макет erb.
Я не думаю, что есть способ автоматически вставить его