Il collegamento al foglio di styleshe foglio include si presenta nell'HTML, ma gli stili non vengono applicati quando Turbolicks è acceso?

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

Domanda

Sto costruendo un grande sito e vorrei avere un sacco di CSS specifici del controller.

Vorrei usare Turbolicks, ma gli stili specifici del controller non vengono applicati quando Turbolicks carica una nuova pagina.

Tuttavia, se sono nella stessa pagina e fai clic sul pulsante "Aggiorna", gli stili vengono applicati bene.Quindi gli stili sono nell'HTML ma non vengono applicati a causa del modo in cui i turboleks funziona.

Nel mio file modello di layout ho questo:

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


.

nota laterale

Nel mio file application.css ho

*= require_directory .
.

Capisco I potrebbe Cambialo in questo:

*= require_tree .
.

Per includere tutti i CSS e non avere questo problema, ma questo sembra una cattiva soluzione.Vorrei impedire l'utilizzo di qualsiasi soluzione che carichi questo sito stili largo.

È stato utile?

Soluzione

Se si desidera stili da stili specifici del controller, puoi semplicemente includere questo nel layout dell'applicazione:

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

Nella vostra applicazione.CSS, non chiamare alcuna dipendenza centrica del controller nel manifestare require;Trattare il foglio di stili di controller e foglio di applicazione come indipendenti

controller_name in rotaie è un metodo helper che ti dà la stringa delNome del controller:

.

Converte il nome della classe da qualcosa come "Onemodule :: Twomodule :: BEATCONTROLLER" a "NEAL".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top