2012-01-09 14 views
9

私はLeopardウェブサーバ上でプロダクションを使用している姉妹のRails 3.1アプリでこれを行っています。だから私はこのアプリケーションを展開することが失われることを期待していませんでした。私はPassengerにこのアプリを認識させてもらいましたが、Apacheで[GET /] miss 'エラーが発生しました。周りを見回すと、問題を特定できるかどうかを調べるために、これをwebrickで実行することができます。rails production 'cssはプリコンパイルされていません'

バンドルのexecすくい資産:プリコンパイルRAILS_ENV =生産

しかし、私はローカルホストをアップロード:私は取得3000

を「青写真/ 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で起こると私は、プリコンパイルが青写真ディレクトリで発生を確認することができます。何が見えますか?、サム

+0

私は「落とし穴」私は '%のワット()'で私の項目を分けるコンマを持っていたし、それらのコンマではなく、それらを分離する配列項目の一部になったところに走りました。例えば。 '%w(blueprint/screen.css、blueprint/print.css)#=> ['blueprint/screen.css、'、 'blueprint/print.css'] ' –

答えて

12

このように別途試しましたか?

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

その後、実行します。

bundle exec rake assets:precompile RAILS_ENV=production 

は、これはそれを修正する必要があります。

+0

これは必要です。私のようなものでした:config.assets.precompile + =%w(blueprint/screen.css blueprint/print.css) – sam452

+1

ちょうど不思議なことに、プリコンパイルの配列を別々の行に追加すると、なぜ彼の問題は解決するのでしょうか? –

9

プロダクション環境でassets.compileをtrueに設定すると、ファイルが見つからないときにアセットパイプラインにフォールバックすることができます。

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

注意すると、パフォーマンスが低下する可能性があります。 – orourkedd

+0

これは確実に_symptom_を修正しますが、修正可能な_problem_を隠して修正する必要があります。 –