如何在Rails 4中加载供应商资产文件夹?

时间:2014-09-22 21:20:05

标签: ruby-on-rails plugins ruby-on-rails-plugins

我有一个包含多种类型文件的插件,以及它自己的树结构(html,css,js,文档,图像等)

我没有浏览插件文件夹,而是将所有css和js文件拆分为vendor/assets/js/ vendor/assets/css/个文件夹,而是希望保持整个插件文件夹不变。例如,

vendor/assets/multipurpose_bookshelf_slider/

如何确保路径正确加载,并在我的清单文件中引用它们?

目前,我有一些文件如下(不详尽)

/my_app/vendor/assets/multipurpose_bookshelf_slider/css/skin01.css
/my_app/vendor/assets/multipurpose_bookshelf_slider/js/jquery.easing.1.3.js
/my_app/vendor/assets/multipurpose_bookshelf_slider/
/my_app/vendor/assets/multipurpose_bookshelf_slider/

我在

中引用它们

application.js

//= require multipurpose_bookshelf_slider/js/jquery.easing.1.3.js
//= require multipurpose_bookshelf_slider/js/jquery.bookshelfslider.min.js

application.css.scss

@import "css/bookshelf_slider";
@import "css/skin01";

3 个答案:

答案 0 :(得分:84)

直接在assets下创建的任何文件夹都将添加到加载路径中。该文件夹中的文件可以像往常一样引用:

如果你有

  • vendor/assets/custom/js/file.js

  • vendor/assets/custom/css/file.css

然后vendor/assets/custom/将添加到加载路径。

通过执行以下操作,将您的文件包含在以下文件中:

<强>的application.js

//= require js/file

<强> application.css.scss

@import "css/file";

完成后,请确保重新启动本地服务器,因为启动服务器时负载路径已被识别。

注意:要查看加载路径列表,请在终端rails c中输入,然后键入Rails.application.config.assets.paths

答案 1 :(得分:4)

如果您运行的应用程序已激活资产管道,则应在展开应用程序中的路径后找到您的资产.rb

config.assets.paths << Rails.root.join("multipurpose_bookshelf_slider")

答案 2 :(得分:3)

我更喜欢D7na的答案,但我认为有点改善。

只要这与资产相关,我认为最好放在assets.rb文件中。

<强> assets.rb

Rails.application.config.assets.paths << Rails.root.join("multipurpose_bookshelf_slider")