繁体   English   中英

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

[英]how to effectively organize vendor css and js files togheter in rails assets

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

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

让我感动的所有文件和子文件夹vendor/assets ,其中包括//= require_tree ../../../vendor/assets/在我的application.js,推荐这里 所以我的application.js看起来像

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

在我的布局文件中:

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

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

Showing /home/valle/RoR/grifo/app/views/layouts/application.html.erb where line #25 raised: /home/valle/RoR/grifo/vendor/assets/bootstrap.js isn't in paths: /home/valle/RoR/grifo/app/assets/images, /home/valle/RoR/grifo/app/assets/javascripts, /home/valle/RoR/grifo/app/assets/stylesheets, /home/valle/RoR/grifo/lib/assets/circle-flip-slideshow, /home/valle/RoR/grifo/lib/assets/isotope, /home/valle/RoR/grifo/lib/assets/javascripts, /home/valle/RoR/grifo/lib/assets/jflickrfeed, /home/valle/RoR/grifo/lib/assets/magnific-popup, /home/valle/RoR/grifo/lib/assets/mediaelement, /home/valle/RoR/grifo/lib/assets/nivo-slider, /home/valle/RoR/grifo/lib/assets/owl-carousel, /home/valle/RoR/grifo/lib/assets/rs-plugin, /home/valle/RoR/grifo/lib/assets/stylesheets, /home/valle/RoR/grifo/lib/assets/twitterjs, /home/valle/.rvm/gems/ruby-1.9.3-p392/gems/modernizr-rails-2.7.1/vendor/assets/javascripts, /home/valle/.rvm/gems/ruby-1.9.3-p392/gems/turbolinks-2.2.2/lib/assets/javascripts, /home/valle/.rvm/gems/ruby-1.9.3-p392/gems/jquery-rails-3.1.0/vendor/assets/javascripts, /home/valle/.rvm/gems/ruby-1.9.3-p392/gems/coffee-rails-4.0.1/lib/assets/javascripts, /home/valle/.rvm/gems/ruby-1.9.3-p392/bundler/gems/twitter-bootstrap-rails-663760e67b80/app/assets/fonts, /home/valle/.rvm/gems/ruby-1.9.3-p392/bundler/gems/twitter-bootstrap-rails-663760e67b80/app/assets/images, /home/valle/.rvm/gems/ruby-1.9.3-p392/bundler/gems/twitter-bootstrap-rails-663760e67b80/app/assets/javascripts, /home/valle/.rvm/gems/ruby-1.9.3-p392/bundler/gems/twitter-bootstrap-rails-663760e67b80/app/assets/stylesheets, /home/valle/.rvm/gems/ruby-1.9.3-p392/bundler/gems/twitter-bootstrap-rails-663760e67b80/vendor/assets/stylesheets

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

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

Rails.application.config.assets.paths不包含vendor ,如果你想要你必须添加路径

在config / application.rb中

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

application.js文件更新为

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

并在application.css文件中需要其他css文件作为

*= require otherCssFiles

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM