Конвейер активов Rails: Стандартный способ включения всех / vendor / assets / javascripts /? - PullRequest
53 голосов
/ 25 января 2012

Я переводил приложение на Rails 3.1 (а теперь и на 3.2) и смотрел Railscast на конвейере активов .Я переместил все мои сторонние файлы плагинов jquery в каталог / vendor / assets / javascripts /.В моем /app/assets/javascripts/application.js я имею следующее:

//= require jquery
//= require jquery_ujs
//= require_tree .
//= require_self

Я понял, что вызов require_tree . загружает только дерево для каталога / app / assets / javascripts /.(Это правильно?) Как лучше всего включить все javascripts "вендора"?(На данный момент я не беспокоюсь об упорядочении.) Конечно, я могу требовать их построчно в /app/assets/javascripts/application.js.Другой моей мыслью было создать /vendor/assets/javascripts/vendor_javascripts.js со следующим:

//= require_tree .

А затем в /app/assets/javascripts/application.js добавить следующее:

//= require vendor_javascripts

Это кажется немного неуклюжим, хотя.Есть ли лучший способ автоматически включать все javascripts "vendor" (и / или "lib")?

PS.Я видел это о файлах index.js , но я мог бы получить несколько файлов с именем index.js, верно?О, и я попытался перезапустить мой сервер повсюду.

Ответы [ 2 ]

73 голосов
/ 25 января 2012

Вы можете добавить что-то вроде этого в свой файл app/assets/javascripts/application.js, чтобы включить все javascripts поставщика:

//= require_tree ../../../vendor/assets/javascripts/.
21 голосов
/ 26 сентября 2014

Я знаю, что это старый вопрос, но вы можете создать файл манифеста в папке vender / assets / javascript:

 #vendor/assets/javascripts/my_jquery_plugins/manifest.js
 # require_tree .

И в вашем application.js:

 //= require my_jquery_plugins/manifest.js

Если вы используете Rails 4, назовите manifest.js как index.js, а в вашем application.js:

//= require my_jquery_plugins

Это менее хакерски, чем описанный относительный путь.

...