在vendor / lib目录中的Rails中包含js / css模块

时间:2012-02-17 16:43:09

标签: javascript ruby-on-rails css sprockets

我有一个Rails 3.1项目,我正在尝试包含一个同时包含js,css和image文件的jQuery插件,我将它们放在vendor/assets/chosen/{images,javascripts,stylesheets}之下,并且我添加了index.css和index .js到各自的dirs。

然后我尝试在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下的this页面,您应该能够至少使用lib目录(我已尝试过,同样的结果)。有人有任何提示吗?

更新 当我检查rails中的assets.paths时,包括vendor/assets/chosen

2 个答案:

答案 0 :(得分:0)

尝试编写插件文件的相关路径。例如(这就是我在项目中包含colorpicker的方式):

//= 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)

答案 1 :(得分:0)

//= require chosen

您在application.js中添加的上述代码告诉Rails在资源路径中查找名为“selected”的文件。由于您没有名为“selected”的文件,因此rails抱怨“找不到文件”,这是正确的。你需要的是require_tree

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

#application.css
*= require_tree ../../../vendor/assets/chosen/stylesheets