O link para a folha de estilo inclui aparece no HTML, mas os estilos não são aplicados quando o Turbolinks está ativado?

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

Pergunta

Estou construindo um site grande e gostaria de ter muitos CSS específicos do controlador.

Eu gostaria de usar turbolinks, mas os estilos específicos do controlador não são aplicados quando os turbolinks carregam uma nova página.

No entanto, se eu estiver na mesma página e clicar no botão "atualizar", os estilos serão aplicados perfeitamente.Portanto, os estilos estão no HTML, mas não estão sendo aplicados devido à forma como os turbolinks funcionam.

No meu arquivo de modelo de layout eu tenho isto:

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

NOTA

No meu arquivo application.css eu tenho

*= require_directory .

eu entendo eu PODERIA mude para isto:

*= require_tree .

Incluir todo CSS e não ter esse problema, mas parece uma solução ruim.Gostaria de evitar o uso de qualquer solução que carregue esses estilos em todo o site.

Foi útil?

Solução

Se você quiser folhas de estilo específicas do controlador, basta incluí-las no layout do seu aplicativo:

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

Em seu application.css, não chame nenhuma dependência centrada no controlador em seu require manifesto;trate as folhas de estilo do controlador e a folha de estilo do aplicativo como independentes

nome_do_controlador no Rails é um método auxiliar que fornece a string do nome do controlador:

Converte o nome da classe de algo como "onemodule :: twomodule :: packcontroller" para "puro".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top