0

特定のコントローラー/アクションについて、CSSアセットの特定のサブセットのみを提供したいと思います。そのようなことは可能ですか?

app / views / layouts/application.html.erbにこのようなものが欲しい

<% if newsletter_show? %>
    <%= stylesheet_link_tag    "foo", "bar", "baz" %>
<% else %>
    <%= stylesheet_link_tag    "application" %>
    <%= javascript_include_tag "application" %>
<% end %>

注:条件がtrueの場合、特定のcssファイル(foobarbaz)を提供するだけでなく、意図的にjavascriptも提供しません。

これは開発では完全に機能しますが、本番環境では、スタイルシートが全体としてプリコンパイルされているため、スタイルシートをばらばらにすることができないため、失敗します。これを回避する方法はありますか?

4

1 に答える 1

0

オプション1:プリコンパイルにfoo barとbazを追加すると、機能するはずです:

config / application.rb内:

config.assets.precompile += %w(foo.css bar.css baz.css)

オプション2:別のcssグループ化ファイルを作成することもできます:

app / Assets / stylesheets / newsletter.css:

/*
*= require foo
*= require bar
*= require baz
*/

config / application.rb内:

config.assets.precompile += %w(newsletter.css)

ビューで:

<% if newsletter_show? %>    
  <%= stylesheet_link_tag 'newsletter' %>
#...

アセットを再コンパイルすることを忘れないでください:)

于 2012-07-30T21:21:18.910 に答える