rails production'css未预编译'

时间:2012-01-09 21:30:31

标签: ruby-on-rails-3

我在使用Leopard网络服务器上的制作的姐妹Rails 3.1应用程序上完成了这项工作。所以我没想到会丢失部署这个应用程序。我已经让Passenger认出了应用程序,但我在apache中遇到了'[GET /] miss'错误。环顾四周,我想我可以在webrick中运行这个以查看是否可以隔离问题。

捆绑exec rake资产:预编译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 )

这发生在3.1.0和3.1.3中,我可以确认预编译发生在蓝图目录中。我在俯视什么?,山姆

2 个答案:

答案 0 :(得分:12)

你有没有像这样单独尝试过?

config.assets.precompile += %w( blueprint/screen.css )
config.assets.precompile += %w( blueprint/print.css )

然后运行:

bundle exec rake assets:precompile RAILS_ENV=production

这应该修复它。

答案 1 :(得分:8)

您可以在生产环境中将assets.compile设置为true,以便在错过文件时回退到资产管道。

# config/environments/production.rb
# ...
# Fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = true