2012-04-29 16 views
2

私は初心者ですから、スタイルシートの仕組みを明確にしていないと思います。Rails:なぜ私のscssファイルはコンパイルされませんか?

  • application.css
  • home.css

私は熊手資産を実行します:現在、私は私の資産/スタイルシートに2つのファイルが持っているプリコンパイルを - 私はapplication.cssコンパイルされていることを実感します私のpublic/assetsフォルダにコピーします。 home.cssはどうですか?

詳細

私は応答が私のホームコントローラから受信された場合にのみhome.cssロードします。私は* = require_treeを削除しました。 (私はhome.cssが他のすべてのページに含まれていると推測しているからです)

私がこれを解決しようとしているのは、herokuが次のエラーを投げるためです。

ActionView::Template::Error (home.css isn't precompiled): 
2012-04-29T10:48:20+00:00 app[web.1]:  5:  <meta name="viewport" content="width=device-width"> 
2012-04-29T10:48:20+00:00 app[web.1]:  7:  = stylesheet_link_tag "application" 
2012-04-29T10:48:20+00:00 app[web.1]:  6:  = javascript_include_tag "application" 
2012-04-29T10:48:20+00:00 app[web.1]:  8:  = stylesheet_link_tag params[:controller] 
2012-04-29T10:48:20+00:00 app[web.1]:  9:  = javascript_include_tag [:controller] 
2012-04-29T10:48:20+00:00 app[web.1]:  10:  = csrf_meta_tags 
2012-04-29T10:48:20+00:00 app[web.1]:  11: %body 
2012-04-29T10:48:20+00:00 app[web.1]: 
2012-04-29T10:48:20+00:00 app[web.1]: app/views/layouts/application.haml:8:in `_app_views_layouts_application_haml__2082158123561350666_35885340' 
2012-04-29T10:48:20+00:00 app[web.1]: cache: [GET /] miss 

どのような問題/間違いがありますか?ありがとう!

答えて

5

デフォルトでは、application.cssのみがコンパイルされます(the guideを参照)。あなたがプリコンパイルされた内容を変更したい場合は、

config.assets.precompile += ['home.css'] 
+0

私はすべてのCSSファイルをプリコンパイルするように指示しなければならない例えば、application.rbにconfig.assets.precompileを変更? (私はすべてのコントローラのためのCSSファイルを持っていると思う)。それとも悪い練習ですか? – Karan

+1

私は、これは各コントローラに別々のCSSを持つのがベストプラクティスではないと思います。通常(単純な場合)はすべて1つの大きなファイルにコンパイルされ、1回読み込まれます。 ファイルは好きなように分割できますが、最終的には大きなファイルになります。 –

+0

今、私は分かる。もう一つの疑問 - 私のすべてのユーザーページ(ユーザーコントローラによって読み込まれたもの)のように、バックグラウンドを変えることは、アプリのバックグラウンドの残りの部分にどうやって行くのでしょうか? – Karan

関連する問題