Link zum Stylesheet-Include wird im HTML-Code angezeigt, aber Stile werden nicht angewendet, wenn Turbolinks aktiviert ist?

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

Frage

Ich baue eine große Site und hätte gerne viel Controller-spezifisches CSS.

Ich möchte Turbolinks verwenden, aber die Controller-spezifischen Stile werden nicht angewendet, wenn Turbolinks eine neue Seite lädt.

Wenn ich mich jedoch auf derselben Seite befinde und auf die Schaltfläche "Aktualisieren" klicke, werden die Stile einwandfrei angewendet.Die Stile befinden sich also im HTML-Code, werden jedoch aufgrund der Funktionsweise von Turbolinks nicht angewendet.

In meiner Layout-Vorlagendatei habe ich Folgendes:

= stylesheet_link_tag "application", :media => "all"
= stylesheet_link_tag params[:controller]

RANDNOTIZ

In meiner Bewerbung.CSS-Datei, die ich habe

*= require_directory .

Ich verstehe, ich KÖNNEN ändern Sie es in dieses:

*= require_tree .

Um alle CSS einzuschließen und dieses Problem nicht zu haben, aber das scheint eine schlechte Lösung zu sein.Ich möchte verhindern, dass eine Lösung verwendet wird, die diese Stile Site-weit lädt.

War es hilfreich?

Lösung

Wenn Sie Controller-spezifische Stylesheets wünschen, können Sie diese einfach in Ihr Anwendungslayout aufnehmen:

<%= stylesheet_link_tag controller_name, media: "all", "data-turbolinks-track" => true %>

In Ihrer Bewerbung.css, rufen Sie keine Controller-zentrierten Abhängigkeiten in Ihrem auf require manifestieren;behandeln Sie die Controller-Stylesheets und das Anwendungs-Stylesheet als unabhängige Elemente

name des Verantwortlichen in Rails befindet sich eine Hilfsmethode, die Ihnen die Zeichenfolge des Controllernamens gibt:

Konvertiert den Klassennamen von etwas wie "OneModule :: TwoModule :: NeatController" auf "ordentlich".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top