Rails 3.1 での条件付き CSS レンダリング
Rails 3.1 アセット パイプラインは、CSS ファイルを含む静的アセットを管理するための強力なメカニズムを提供します。ただし、特定の基準に基づいて CSS を条件付きでレンダリングするのは、困難な作業になる可能性があります。
デフォルトのアプローチ
デフォルトでは、*= require_tree コマンドには、アセット/スタイルシート ディレクトリ。この方法では、CSS バンドルが大きくなり、読み取れなくなる可能性があります。
個別のファイルの組み込み
回避策として、application.css で各 CSS ファイルを個別に手動で指定できます。マニフェストします。この方法はより細かい制御を提供しますが、退屈で柔軟性に欠ける可能性があります。
よりスマートなソリューション
より洗練されたソリューションには、個別のマニフェスト ファイルを使用して CSS 要件を細分化することが含まれます。論理グループ。この方法により、手動で編集することなく、新しいスタイルシートを自動的に追加できます。
ステップ 1: アセット構造を再編成する
まず、app/assets/stylesheets フォルダーを再編成します。次の構造に変換します:
ステップ2: マニフェスト ファイルの編集
次に、次のように 3 つのマニフェスト ファイルを編集します。以下:
# application-all.css *= require_self *= require_tree ./all # application-print.css *= require_self *= require_tree ./print # application-ie.css *= require_self *= require_tree ./ie
ステップ 3: アプリケーション レイアウトの更新
新しいマニフェスト ファイルを含めるようにアプリケーション レイアウトを変更します:
<%= stylesheet_link_tag "application-all", :media => "all" %> <%= stylesheet_link_tag "application-print", :media => "print" %> <!--[if lte IE 8]> <%= stylesheet_link_tag "application-ie", :media => "all" %> <![endif]-->
ステップ 4: 本番環境を構成する環境
新しいマニフェスト ファイルを config/environments/production.rb に追加します:
config.assets.precompile += %w( application-all.css application-print.css application-ie.css )
画像参照に関する注意
この条件付きレンダリングのアプローチは、スタイルシート内の画像参照に影響を与える可能性があることに注意してください。画像を適切にロードするには、同じフォルダー構造に従うように画像を移動するか、画像パスを修飾するか、SASS ヘルパー image-url('image.png') を使用します。
以上がRails 3.1 で条件付き CSS レンダリングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。