Файл манифеста Rails 3.1 Asset Pipeline не принимает javascripts - PullRequest
4 голосов
/ 11 января 2012

У меня есть целый MESS javascripts в vendor / assets / javascripts. В моем файле app / assets / javascripts / application.js есть директива:

//= require_tree .

Относится ли это только к текущему каталогу app / assets / javascripts, а не к lib / assets или vendor / assets?

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

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

Ответы [ 3 ]

5 голосов
/ 12 января 2012

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

lib/assets и vendor/assets уже включены в пути поиска для конвейера ( см. Этот код ).

Вы можете включить эти продаваемые файлы, используя второй манифест.

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

Внутри этого добавления поместите директиву require_tree.

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

require misc_vendor

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

В рамках перехода на конвейер это может быть хорошим шансом навести порядок! : -)

1 голос
/ 31 мая 2012

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

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

Путь должен быть относительно файла манифеста app / assets / javascripts / application.js.

0 голосов
/ 11 января 2012

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

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

Подробнее см. В этом руководстве

...