仅在生产模式下使用自定义资产文件夹的RoutingError

时间:2014-05-20 08:43:00

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline

我得到了布局文件中包含的所有js and css文件的所有RoutingError。

ActionController::RoutingError (No route matches [GET] "/ace-admin-theme/css/ace-rtl.min.css"):
  actionpack (4.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
ActionController::RoutingError (No route matches [GET] "/ace-admin-theme/js/bottom.js"):

我运行了RAILS_ENV=production rake assets:precompile,它运作良好。

config/environments/production.rb

  config.serve_static_assets = true
  config.assets.compile = false
  config.assets.precompile += %w( bootstrap.css )
  config.assets.precompile += %w( vendor/themes/* )

config/application.rb

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

在我的布局视图中,我以这种方式包含js和css

  %script{src:  asset_path("lenord-single-page-theme/js/jquery.js")}
  / Bootstrap JS
  %script{src:  asset_path("lenord-single-page-theme/js/bootstrap.min.js")}
%link{href:  asset_path("lenord-single-page-theme/css/rs-settings-ie8.css"), rel: "stylesheet"}/
/ Animate CSS
%link{href:  asset_path("lenord-single-page-theme/css/animate.min.css"), rel: "stylesheet"}/
/ Portfolio CSS
%link{href:  asset_path("lenord-single-page-theme/css/prettyPhoto.css"), rel: "stylesheet"}/
/ Font awesome CSS
%link{href:  asset_path("lenord-single-page-theme/css/font-awesome.min.css"), rel: "stylesheet"}/

我必须将vendor/themes/下的两个文件夹作为我的资产

lenord-single-page-theme
├── css
│   ├── animate.min.css
│   ├── bootstrap.css
│   ├── bootstrap.min.css
│   ├── font-awesome.min.css
│   ├── prettyPhoto.css
│   ├── rs-settings-ie8.css
│   ├── rs-settings.css
│   └── style.css
├── fonts
│   ├── FontAwesome.otf
│   ├── fontawesome-webfont.eot
│   ├── fontawesome-webfont.svg
│   ├── fontawesome-webfont.ttf
│   └── fontawesome-webfont.woff
├── img
│   ├── 1.jpg
│   ├── 10.jpg
│   ├── 11.png
│   ├── 12.jpg
│   ├── 13.png
│   ├── 2.jpg
│   ├── 3.jpg
│   ├── 4.png
│   ├── 5.png
│   ├── 6.png
│   ├── 8.jpg
│   ├── 9.jpg
│   ├── aboutus.png
│   ├── back-top.png
│   ├── banner_1.jpg
│   ├── banner_2.jpg
│   ├── banner_3.jpg
│   ├── blue-back.png
│   ├── dummy.png
│   ├── fback.png
│   ├── portfolio
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   ├── 3.jpg
│   │   ├── 4.jpg
│   │   ├── 5.jpg
│   │   ├── 6.jpg
│   │   ├── 7.jpg
│   │   ├── 8.jpg
│   │   ├── 9.jpg
│   │   ├── tn1.jpg
│   │   ├── tn2.jpg
│   │   ├── tn3.jpg
│   │   ├── tn4.jpg
│   │   ├── tn5.jpg
│   │   ├── tn6.jpg
│   │   ├── tn7.jpg
│   │   ├── tn8.jpg
│   │   └── tn9.jpg
│   ├── prettyPhoto
│   │   ├── dark_rounded
│   │   │   ├── btnNext.png
│   │   │   ├── btnPrevious.png
│   │   │   ├── contentPattern.png
│   │   │   ├── default_thumbnail.gif
│   │   │   ├── loader.gif
│   │   │   └── sprite.png
│   │   ├── dark_square
│   │   │   ├── btnNext.png
│   │   │   ├── btnPrevious.png
│   │   │   ├── contentPattern.png
│   │   │   ├── default_thumbnail.gif
│   │   │   ├── loader.gif
│   │   │   └── sprite.png
│   │   ├── default
│   │   │   ├── default_thumb.png
│   │   │   ├── loader.gif
│   │   │   ├── sprite.png
│   │   │   ├── sprite_next.png
│   │   │   ├── sprite_prev.png
│   │   │   ├── sprite_x.png
│   │   │   └── sprite_y.png
│   │   ├── facebook
│   │   │   ├── btnNext.png
│   │   │   ├── btnPrevious.png
│   │   │   ├── contentPatternBottom.png
│   │   │   ├── contentPatternLeft.png
│   │   │   ├── contentPatternRight.png
│   │   │   ├── contentPatternTop.png
│   │   │   ├── default_thumbnail.gif
│   │   │   ├── loader.gif
│   │   │   └── sprite.png
│   │   ├── light_rounded
│   │   │   ├── btnNext.png
│   │   │   ├── btnPrevious.png
│   │   │   ├── default_thumbnail.gif
│   │   │   ├── loader.gif
│   │   │   └── sprite.png
│   │   └── light_square
│   │       ├── btnNext.png
│   │       ├── btnPrevious.png
│   │       ├── default_thumbnail.gif
│   │       ├── loader.gif
│   │       └── sprite.png
│   ├── product.png
│   ├── service
│   │   ├── 11.png
│   │   ├── 12.png
│   │   ├── 21.png
│   │   ├── 22.png
│   │   ├── 31.png
│   │   ├── 32.png
│   │   ├── 41.png
│   │   └── 42.png
│   ├── service.png
│   ├── vast.jpg
│   ├── vivotek_square_icon.jpg
│   ├── vvtk_sd.jpg
│   └── wood-back.png
├── index.html
├── js
│   ├── application.js
│   ├── bootstrap.js
│   ├── bootstrap.min.js
│   ├── custom.js
│   ├── gmaps.js
│   ├── html5shiv.js
│   ├── jquery.arbitrary-anchor.js
│   ├── jquery.js
│   ├── jquery.knob.js
│   ├── jquery.prettyPhoto.js
│   ├── jquery.themepunch.plugins.min.js
│   ├── jquery.themepunch.revolution.min.js
│   ├── respond.min.js
│   └── waypoints.min.js
└── rs-assets
    ├── arrow_large_left.png
    ├── arrow_large_right.png
    ├── arrow_left.png
    ├── arrow_left2.png
    ├── arrow_right.png
    ├── arrow_right2.png
    ├── arrowleft.png
    ├── arrowright.png
    ├── arrows.psd
    ├── black50.png
    ├── boxed_bgtile.png
    ├── bullet.png
    ├── bullet_boxed.png
    ├── bullets.png
    ├── bullets.psd
    ├── bullets2.png
    ├── coloredbg.png
    ├── grain.png
    ├── large_left.png
    ├── large_right.png
    ├── loader.gif
    ├── loader2.gif
    ├── navigdots.png
    ├── navigdots_bgtile.png
    ├── shadow1.png
    ├── shadow2.png
    ├── shadow3.png
    ├── small_arrows.psd
    ├── small_left.png
    ├── small_left_boxed.png
    ├── small_right.png
    ├── small_right_boxed.png
    ├── timer.png
    ├── timerdot.png
    ├── transparent.jpg
    └── white50.png

14 directories, 154 files

我树public/assets/lenord-single-page-theme

.
├── css
│   ├── application-48a2ca576072321b8aa1cbd6a5e2c4d0.css
│   ├── application-48a2ca576072321b8aa1cbd6a5e2c4d0.css.gz
│   ├── application-c10b8fe67580eba27a0c2be97cddd922.css
│   └── application-c10b8fe67580eba27a0c2be97cddd922.css.gz
└── js
    ├── application-caecf7819e4bf62b1e535d1e6be6cc95.js
    ├── application-caecf7819e4bf62b1e535d1e6be6cc95.js.gz
    ├── application-dfabb3389cb2e71ba110a8589e5e106b.js
    └── application-dfabb3389cb2e71ba110a8589e5e106b.js.gz

更新:如何递归添加文件夹

下的所有文件

现在,我需要手动添加所有文件, 是否有任何递归方式来添加所有文件?

  config.assets.precompile += %w( bootstrap.css )
  config.assets.precompile += %w( vendor/themes/* )
  config.assets.precompile += %w( vendor/themes/**/*.js vendor/themes/**/*.css )
  config.assets.precompile += %w( vendor/themes/**/*.png vendor/themes/**/*.jpg )
  config.assets.precompile += %w( vendor/themes/lenord-single-page-theme/img/*.png )

0 个答案:

没有答案