シナリオは次のとおりです。
私のページのほとんどは、デフォルトの Rails に従って 1 つの大きな CSS ファイルにコンパイルされるさまざまなページの CSS を使用していますが、問題はありません。
しかしactions
、別の CSS ページを使用する必要があるコントローラーにあるいくつかのページがあり、他のページはまったく使用されません。これらは、それ以外の場合はメインのデフォルトのコンパイル済み CSS を使用するコントローラーの約 3 つのアクションです。
これを実現するために、別のページが必要なアクションに対して特定のレイアウトを呼び出します。
format.html { render :layout => 'doghouse_template' }
これdoghouse_template
には、頭に次の呼び出しがあります。
= stylesheet_link_tag "doghouse_page"
これは、必要に応じてページがオンザフライでコンパイルされる開発環境では問題なく動作しますが、本番環境では次のエラーが発生します。
ActionView::Template::Error (doghouse_page.css isn't precompiled)
これは、doghouse_page.css
が個別にコンパイルされていないためです。メインの application.css ファイルにコンパイルされているため、もちろん、フォルダーには存在しませんpublic/assets
。
また、これdoghouse.css
は実際には CSS ページではなくSCSSpublic/assets
であるため、何らかのタイプをコンパイルせずにコピーすることはできません。
私の質問は、ここでの解決策は何ですか?
これらに application.css ファイルを使用することはできません。犬小屋のページと呼びましょう。スタイルが台無しになるためです。
ファイルをapplication.rbに入れてみました:
config.assets.precompile += %w( doghouse_page.css.scss )
しかし、違いはありません。一方、私が置くと:
config.assets.precompile += %w( *.css )
bootstrap/_accordion.scss ファイルが原因でプリコンパイル時にエラーが発生するため、それを行うことはできません。
ここで非常によく似た質問を見てきましたが、それらはコントローラー全体に異なる CSS を使用することに適用される傾向があり、すべてのページを 1 つにコンパイルしない方法はどこにも指定されていません。
すべての CSS ページを分離したくないことに注意してください(表向きは 1 つの解決策です)。この 1 つのページだけを分離します。
ありがとう。