スタイルシートへのリンクはHTMLに表示されますが、Turbolinksがオンのときにスタイルは適用されませんか?
-
21-12-2019 - |
質問
私は大きなサイトを構築していて、コントローラ固有のCSSをたくさん持ちたいです。
Taurbolinksを使用したいのですが、Turbolinksが新しいページをロードするときにコントローラ固有のスタイルは適用されません。
しかし、私が同じページにいるなら、「更新」ボタンをクリックすると、スタイルが正しいだけ適用されます。そのため、スタイルはHTMLにありますが、それらはTurbolinksが機能する方法のために適用されていません。
私のレイアウトテンプレートファイルではこれがあります:
= stylesheet_link_tag "application", :media => "all"
= stylesheet_link_tag params[:controller]
.
サイドノート
私のapplication.cssファイルで
*= require_directory .
.
私は私がこれに変更することができるi を理解しています:
*= require_tree .
.
すべてのCSを含み、この問題をお持ちではありませんが、これは悪い解決策のようです。これらのスタイルサイトを広くロードするソリューションを使用するのを防ぎたい。
解決
コントローラ固有のスタイルシートが必要な場合は、アプリケーションレイアウトにこれを含めることができます。
<%= stylesheet_link_tag controller_name, media: "all", "data-turbolinks-track" => true %>
.
あなたのApplication.cssでは、require
マニフェストにあるコントローラ中心の依存関係を呼び出しません。Controller Stylesheets&Application StyleSheetを独立税として扱う
controller_name Railsの文字列を提供するヘルパーメソッドです。コントローラの名前:
クラス名をそのようなものから変換します "OneModule :: Twomodule :: NeatController"に "Neat"。
所属していません StackOverflow