2012-01-11 2 views
4

У меня есть весь MESS из javascripts в vendor/assets/javascripts. В моем приложении/активы/JavaScripts/application.js файл, у меня есть директива:Rails 3.1 Файл манифеста Asset Pipeline не забирает javascripts

//= require_tree . 

ли это только ссылки на текущий каталог приложений/активов/JavaScripts, а не Lib/активы или поставщика/активы?

Если я явно включаю javascripts, он работает. Я просто не хочу этого делать, если мне это не нужно.

Есть ли что-то, что мне не хватает, что позволит конвейеру активов автоматически обрабатывать активы извне каталога приложения (lib и vendor)?

ответ

5

require_tree тянет только в активы, которые находятся под application.js файла.

lib/assets и vendor/assets уже включены в пути поиска по трубопроводу (refer this code).

Вы можете включить эти файлы с помощью второго манифеста.

Перейти к vendor/assets/javascripts и создать файл с именем misc_vendor.js

Внутри что добавить поместить директиву require_tree.

Затем обратитесь к этому файлу из вашего application.js манифеста:

require misc_vendor 

Если у вас есть какие-либо вопросы, из-за порядка загрузки вы можете вручную потребовать файлы поставщика в порядке, нужно вместо использования require_tree.

Как часть преобразования в трубопровод, это может быть хороший шанс очистить вещи! :-)

0

Вам необходимо расширить путь в файле application.rb следующим образом.

config.assets.paths << "#{Rails.root}/vendor/assets/some file name" 

Refer this Guide for more details

1

Кроме того, вы можете сделать это без второго манифеста, как это:

//= require_tree ../../../vendor/assets/javascripts/. 

Путь должен быть по отношению к «приложение/активов/JavaScripts/application.js» файл манифеста.