スタイルシートへのリンクはHTMLに表示されますが、Turbolinksがオンのときにスタイルは適用されませんか?

StackOverflow https://stackoverflow.com//questions/23035164

質問

私は大きなサイトを構築していて、コントローラ固有の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"。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top