在开发模式下它可以正常工作,但在生产模式下出现了 ActionController::RoutingError (No route matches [GET] "/lenord-single-page-theme/js/custom.js"):
错误。
在运行 rails 服务器之前,我运行了 RAILS_ENV=production rake assets:precompile --trace
我在 vendor 下添加了两个资产文件夹
在 application.rb
文件中,我插入了这一行
config.assets.paths << "#{Rails.root}/vendor/themes"
并将config.serve_static_assets
更改为true
+++ b/config/environments/production.rb
@@ -20,7 +20,7 @@ DqaStreesfulServer::Application.configure do
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
- config.serve_static_assets = false
+ config.serve_static_assets = true
文件夹结构
vendor
├── assets
│ ├── javascripts
│ └── stylesheets
└── themes
├── ace-admin-theme
│ ├── avatars
│ ├── css
│ ├── font
│ ├── images
│ ├── img
│ └── js
└── lenord-single-page-theme
├── css
├── fonts
├── img
├── index.html
├── js
└── rs-assets
更新
我是这样引用我的js文件的
welcome.html.haml
60: %script{src: asset_path("lenord-single-page-theme/js/custom.js")}
更新
我猜问题可能出在production.rb
文件中。
我尝试通过在production.rb
文件中添加这一行来编译所有文件:
config.assets.precompile += %w( vendor/themes/* )
我使用rails s -e production
命令在生产模式下运行服务器,而不是nginx或apache
更新
我在生产模式下遇到ActionView :: Template :: Error("}"之后的CSS无效:预期为选择器或at-rule,但是是 "}")
,
在我进行以下更改后。
在../../config/environments/production.rb
中进行了更改。
+ config.assets.compile = true
+ config.assets.precompile = [/^[-_a-zA-Z0-9]*\..*/]
+ config.assets.precompile += %w( *.js *.css )
我在这里展示了vendoe/theme/和public/assets之间的树形视图
这合理吗?
在public/assets下
% tree lenord-single-page-theme (git)-[feature/prettier_form]
lenord-single-page-theme
└── js
├── application-dfabb3389cb2e71ba110a8589e5e106b.js
└── application-dfabb3389cb2e71ba110a8589e5e106b.js.gz
在供应商/主题下
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
ActionController::RoutingError (No route matches [GET] "/%3Cscript%20src=%22/javascripts/lenord-single-page-theme/js/custom.js%22%3E%3C/script%3E"):
。 - newBike