別々のコントローラのアクションでこれを行います
layout.html.erb
<%= stylesheet_link_tag stylesheet_path() %>
スタイルシートを表示するコントローラのアクションを
# Render the template to a string
css = Sass::Engine.new(
render_to_string("path/to/erb_template", :layout => false),
syntax: :scss,
cache: false,
read_cache: false,
style: :standard,
sprockets: {
context: self.view_context,
}
).render
# respond with the rendered string
respond_to do |format|
format.css { render plain: css, :content_type => "text/css" }
end
あなたは、その後にERB変数を含めることができますテンプレート。これは、すべての単一の負荷でSassエンジンに渡されるため、実稼働環境でキャッシュする必要があることに注意してください。
あなたのお尻をきれいに別々のファイルにまとめるには、変数を1つのファイルに入れてERBとしてレンダリングし、残りはテキストファイルとして読み込みます。
WebpackはERBインタープリタを介してアセットを実行しません。ただし、Sprocketsはそうします。また、アセットは通常、デプロイ時にコンパイルされるため、どの変数もリクエストに基づいているわけではないことに注意する必要があります。より良い解決策は、使用するスタイルシートで異なるルールを設定するためにHTMLのクラスを使用することです。 – max