Le lien vers la feuille de style apparaît dans le HTML, mais les styles ne sont pas appliqués lorsque Turbolinks est activé ?

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

Question

Je construis un grand site et j'aimerais avoir beaucoup de CSS spécifiques au contrôleur.

J'aimerais utiliser des turbolinks, mais les styles spécifiques au contrôleur ne sont pas appliqués lorsque les turbolinks chargent une nouvelle page.

Cependant, si je suis sur la même page et que je clique sur le bouton "Actualiser", les styles sont très bien appliqués.Les styles sont donc dans le HTML mais ils ne sont pas appliqués en raison du fonctionnement des turbolinks.

Dans mon fichier de modèle de mise en page, j'ai ceci :

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

NOTE CÔTÉ

Dans mon fichier application.css, j'ai

*= require_directory .

Je comprends, je POURRAIT changez-le en ceci :

*= require_tree .

Inclure tous les CSS et ne pas avoir ce problème, mais cela semble être une mauvaise solution.Je voudrais éviter d'utiliser une solution qui charge ces styles sur l'ensemble du site.

Était-ce utile?

La solution

Si vous souhaitez des feuilles de style spécifiques au contrôleur, vous pouvez simplement les inclure dans la présentation de votre application :

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

Dans votre application.css, n'appelez aucune dépendance centrée sur le contrôleur dans votre require manifeste;traiter les feuilles de style du contrôleur et la feuille de style de l'application comme indépendantes

nom_contrôleur in Rails est une méthode d'assistance qui vous donne la chaîne du nom du contrôleur :

Convertit le nom de classe de quelque chose comme "Onemodule :: Twomodule :: neatController" en "soigné".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top