¿El enlace a la hoja de estilo incluye aparece en el HTML, pero los estilos no se aplican cuando Turbolinks está activado?

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

Pregunta

Estoy construyendo un sitio grande y me gustaría tener muchos CSS específicos del controlador.

Me gustaría usar turbolinks, pero los estilos específicos del controlador no se aplican cuando turbolinks carga una nueva página.

Sin embargo, si estoy en la misma página y hago clic en el botón "actualizar", los estilos se aplican bien.Los estilos están en HTML pero no se aplican debido a la forma en que funcionan los turbovínculos.

En mi archivo de plantilla de diseño tengo esto:

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

NOTA LATERAL

En mi archivo application.css tengo

*= require_directory .

lo entiendo yo PODRÍA cámbielo a esto:

*= require_tree .

Incluir todo el CSS y no tener este problema, pero parece una mala solución.Me gustaría evitar el uso de cualquier solución que cargue estos estilos en todo el sitio.

¿Fue útil?

Solución

Si desea hojas de estilo específicas del controlador, puede incluirlas en el diseño de su aplicación:

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

En su application.css, no llame a ninguna dependencia centrada en el controlador en su require manifiesto;Trate las hojas de estilo del controlador y la hoja de estilo de la aplicación como independientes.

nombre_controlador en Rails hay un método auxiliar que le proporciona la cadena del nombre del controlador:

Convierte el nombre de la clase de algo como "OneModule :: Twomodule :: NeatController" a "ordenado".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top