Подтвердить что ты не робот

Оборотные активы с Rails 3.1

Как предоставить активы в движке Rails 3.1? Где они должны быть расположены и могут ли они автоматически включаться?

(изначально заданный Томасом Целизной)

4b9b3361

Ответ 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.

Я не думаю, что есть способ автоматически вставить его