[英]how to effectively organize vendor css and js files togheter in rails assets
(我对Rails和SO都很新,所以如果我做得不对,那就是借口)
我正在尝试在rails 4应用程序中调整常规的第三方Web模板。 我有一个供应商文件夹,包含其他文件和子文件夹,如bootstrap.js , Nivo-slider和Isotope ,它们包含.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.