Включите модуль js / css в Rails в директории vendor / lib - PullRequest
2 голосов
/ 17 февраля 2012

У меня есть проект Rails 3.1, и я пытаюсь включить плагин jQuery, содержащий файлы js, css и image, и я поместил их в vendor/assets/chosen/{images,javascripts,stylesheets}, и я добавил index.css и index.jsв соответствующие каталоги.

Затем я пытаюсь включить плагин в application.css и application.js с этим:

application.js:

    //= require chosen

application.css

    /*
     *= require chosen
    */

Но когда я загружаю страницу, я получаю эту ошибку:

couldn't find file 'chosen'
  (in /..../app/assets/stylesheets/screen.css:8)

Согласно этой странице в соответствии с 2.1.2 вы должны быть в состоянии сделатьэто по крайней мере с lib dir (который я пробовал, тот же результат).У кого-нибудь есть какие-либо советы?

Обновление: Когда я проверяю assets.paths в консоли rails, включается vendor/assets/chosen.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012
//= require chosen

Приведенный выше код, который вы добавили в application.js, указывает Rails искать файл с именем «selected» в пути к активам. Поскольку у вас нет файла с именем «selected», rails жалуется на «file not found», и это правильно. Что вам нужно, это require_tree

#application.js
//= require_tree ../../../vendor/assets/chosen/javascripts

#application.css
*= require_tree ../../../vendor/assets/chosen/stylesheets
0 голосов
/ 17 февраля 2012

Попробуйте написать связанные пути к файлам вашего плагина.Например (вот как я включил палитру цветов в свой проект):

//= require ../../../vendor/assets/javascripts/colorpicker #in application.js
*= require ../../../vendor/assets/stylesheets/colorpicker #in application.css

А для вас это будет примерно так:

//= require ../../../vendor/assets/javascripts/chosen #in application.js
*= require ../../../vendor/assets/stylesheets/chosen #application.css

Также убедитесь, что ваши пути видны для Rails.(config.assets.paths)

...