Ruby on Rails 3.1 RC1 Проблема конвейера активов Javascript

Я только что обновился до Rails 3.1, и у меня возникла проблема с загрузкой моих Javascripts с новым конвейером ресурсов.

Я скопировал файлы js (как сами файлы, так и их варианты .min) в свой каталог /app/assets/javascripts, и мой манифест application.js выглядит следующим образом:

//= require jquery
//= require jquery_ujs
//= require jquery-easytabs
//= require jquery-hashchange.min
//= require_tree .

Но это, похоже, не работает; Easytabs загружается неправильно. Странно, когда я смотрю в консоли на скомпилированный файл application.js, я вижу код Easytabs, но он не работает.

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

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

Спасибо!


person Harry    schedule 10.06.2011    source источник
comment
Я ответил на аналогичный вопрос здесь: title="rails 3 1 конвейер активов и упорядоченный вручную javascript требует">stackoverflow.com/questions/6149961/   -  person justingordon    schedule 01.01.2012


Ответы (2)


Попробуйте переместить все свои плагины (например, easytabs) в каталог поставщика.

vendor/assets/javascripts/

Затем измените файл application.js на это:

//= require jquery
//= require jquery_ujs
//= require_tree ../../../vendor/assets/javascripts
//= require_tree .

Вы должны (если вы спросите меня) размещать код, который вы написали для определенного контроллера, только в каталоге app/assets/javascripts, все остальное, например плагины, должно находиться в каталоге поставщиков.

person Linus Oleander    schedule 10.06.2011

Мне удалось докопаться до сути - кажется, что порядок требований в алфавитном порядке, поэтому jquery_easytabs компилируется до jquery_ujs. Я исправил это, переименовав в jquery_zeasytabs — не самый чистый, но работает.

person Harry    schedule 10.06.2011