如何在rails资产中有效地组织供应商css和js文件

时间:2014-04-26 01:36:44

标签: ruby-on-rails ruby

(我对Rails和SO都是新手,所以如果我做得不对,那就是借口)

我正在尝试在rails 4应用程序中调整常规的第三方Web模板。我有一个供应商文件夹,其中包含 bootstrap.js Nivo-slider Isotope 等其他文件和子文件夹.css和.js文件。

因此,我按照建议here将所有文件和子文件夹移至vendor/assets并将<{1}}包含在我的 application.js 中。所以我的application.js看起来像

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

在我的布局文件中:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require_tree ../../../vendor/assets/
//= require_tree .

当我在服务器上执行它时,我得到 Sprockets :: FileOutsidePaths 异常:

<%=stylesheet_link_tag "application.css" -%> <%=javascript_include_tag "application" -%>

我认为Sprockets会在所有资源文件夹中获取所有js或css文件,预编译,统一和缩小它们,但现在看来我需要指定路径。我该怎么解决? 此外,在供应商中没有分离的javascript和css文件夹是一个问题吗?

2 个答案:

答案 0 :(得分:2)

rails 4他们已删除了vendor文件夹,因此,资产不会从供应商处提供服务。

Rails.application.config.assets.paths不包含vendor,如果您需要添加路径

在config / application.rb

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

答案 1 :(得分:0)

application.js 文件更新为

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .
//= require otherJsFiles

application.css 文件中需要其他css文件

*= require otherCssFiles

要求将application.js和application.css文件中的每个js和css文件放在 vendor / assets 中。