(我对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文件夹是一个问题吗?
答案 0 :(得分:2)
在rails 4
他们已删除了vendor
文件夹,因此,资产不会从供应商处提供服务。
中Rails.application.config.assets.paths
不包含vendor
,如果您需要添加路径
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 中。