2011-10-30 10 views
0

特定SCSSファイルをリソース奉仕領域が大幅に(CSSの点で)重いので、私はコードをロードするためにサインインしていない人々を救いたいと思います。アセットパイプライン:ない私達のユーザーので、管理</li> </ul> <p>として署名</li> <li>ユーザーに調印</li> <li>ユーザーに調印</p> <ul> <li>ユーザー:私たちは3つの可能なオプションが用意されてい

私のcss.scssをcss.scss.erbに変更することは可能ですか&次にいくつかのヘルパーを追加しますか?例えば:

Application.css.scss.erb

# include css files for non-logged in users 
    <% if signed_in? %> 
    # include css files for logged in users 
    <% if current_user.try(:staff_role?) %> 
     # include css files for admin users 
    <% end %> 
    <% end %> 

このように、私は、第二のまたはユーザの第三のHTTP要求を追加防ぎます。効果的ですか?

レンダリング時間にどのような影響がありますか?レールは3つの異なるファイルをキャッシュしますか?

答えて

1

私はこれがうまくいくとは思わない。すべての資産が本番環境で事前にコンパイルされるので、ERBはあなたが期待していることをしません。資産内のERBは「環境レベル」のみである必要があります。つまり、現在のリクエストの状態にまったく依存しないパスのようなものを意味します。しかし、複数のスタイルシートを使用することができます。

  • すべての一般的なものをカバーするものです。
  • ログイン中のユーザーのためのものが含まれています(ただし、コンテンツがログインしているユーザーに依存することはできません)の一つ。
  • 管理ユーザーのための一つの(しかし、再び、コンテンツがログインしているユーザーに依存することはできません)。

次に、あなたの意見では、適切なスタイルシートが含まれます。

何らかの理由でユーザーごとのCSSが必要な場合は、ビュー内に<style>要素を使用してインライン化するか、要求ごとに確実にカスタマイズできるようにコントローラを介してCSSを提供する必要があります。

+0

よろしくお願いいたします。それは私がちょうど思いついたものです。ちょうど賢いことを知りたかっただけですが、あなたはプレコンパイルをしています!ありがとう! –

関連する問題