我在Leopard网络服务器上使用生产的姐妹Rails 3.1应用程序完成了这个.所以我没想到会丢失部署这个应用程序.我已经让Passenger认出了应用程序,但我在apache中遇到了'[GET /] miss'错误.环顾四周我认为我可以在webrick中运行这个以查看是否可以隔离问题.
bundle exec rake assets:预编译RAILS_ENV =生产
但是当我加载localhost:3000时,我得到"blueprint/screen.css未预编译"
我开始比较姐妹应用程序之间的差异,但找不到它们.以下是他们分享的一些关键代码:
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %> #in app/views/layouts/application.html.erb
config/environments/production.rb
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.precompile += %w( search.js )
config.assets.precompile += %w( blueprint/screen.css blueprint/print.css )
config.assets.precompile += %w( *.css *.js )
Run Code Online (Sandbox Code Playgroud)
这发生在3.1.0和3.1.3中,我可以确认预编译发生在蓝图目录中.我在俯视什么?,山姆
Muh*_*lid 12
你有没有像这样分开试过?
config.assets.precompile += %w( blueprint/screen.css )
config.assets.precompile += %w( blueprint/print.css )
Run Code Online (Sandbox Code Playgroud)
然后运行:
bundle exec rake assets:precompile RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)
这应该修复它.
小智 8
您可以在生产环境中将assets.compile设置为true,以在错过文件时回退到资产管道.
# config/environments/production.rb
# ...
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)