5

ねえ、私は一般的にRailsとRubyに不慣れです。ビューに html.erb ファイルを使用するのと同様に、埋め込まれた ruby​​ css ファイル (css.erb) を使用できるかどうか疑問に思っていました。

たとえば、私は使用しています

<%= stylesheet_link_tag "main" %>

public/stylesheets の main.css ファイルにリンクするには、ファイル拡張子を main.css から main.css.erb に変更すると、css がレンダリングされなくなります。

これは可能ですか、それとももっと良い方法がありますか?

4

3 に答える 3

24

この質問に答えるまでに.css.erb、Rails内のファイルを適切に使用する方法は実際にはありませんでした。

ただし、新しいRails 3.1アセットパイプラインを使用すると、cssファイル内でアセットヘルパーを使用できます。cssパーサーはコントローラー/アクションスコープにバインドされていませんが、rubyパーサーはイメージパス参照などのいくつかの問題を解決できるようになりました

.class { background-image: url(<%= asset_path 'image.png' %>) }

または、画像をCSSに直接埋め込みます

#logo { background: url(<%= asset_data_uri 'logo.png' %>) }

ソース: http: //guides.rubyonrails.org/asset_pipeline.html

于 2012-04-09T15:12:45.390 に答える
4

「スタイルシート」コントローラーを生成することもできます

./script/generate controller stylesheets main admin maintenance

次のようなものが得られます。

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/stylesheets
      exists  test/functional/
      exists  test/unit/helpers/
      create  app/controllers/stylesheets_controller.rb
      create  test/functional/stylesheets_controller_test.rb
      create  app/helpers/stylesheets_helper.rb
      create  test/unit/helpers/stylesheets_helper_test.rb
      create  app/views/stylesheets/main.html.erb
      create  app/views/stylesheets/admin.html.erb
      create  app/views/stylesheets/maintenance.html.erb

そして後で app/views/stylesheets/ ファイルを動的にレンダリングされた css ファイルとして使用できます。

JavaScriptファイル(javascriptsコントローラー)でも同じ方法が機能します

于 2009-08-27T19:57:23.050 に答える
3

私はそうは思わない。あなたの意図は何ですか - 変数を使用し、それらを実行時に評価するか、「コンパイル」時(展開時間のような意味ですか?)。また、ERB バインディングとは何ですか? ビューやヘルパーのようにコントローラーにバインドして、ERB インスタンスがコントローラーに設定されたインスタンス変数にアクセスできるようにしますか? 私はこの質問をより理論的な演習として提起しただけです。

CSS で変数を使用する場合は、Haml の SASS を使用できます。コントローラーのスコープにはアクセスできませんが、基本的な変数とループは取得できます。さらに、ミックスインのようなその他のクールなもの。

于 2009-08-26T23:59:21.867 に答える