Ссылка на stylesheet включает в себя отображение в HTML, но стили не применяются, когда Turbolinks включен?
-
21-12-2019 - |
Вопрос
Я строю большой сайт и хотел бы иметь много контроллера CSS.
Я хотел бы использовать Turbolinks, но специфические стили контроллера не применяются, когда Turbolinks загружает новую страницу.
Однако, если я на той же странице и щелкнул кнопку «Обновить», стили применяются просто штрафом.Таким образом, стили в HTML, но они не применяются из-за того, как работает Turbolinks.
В моем файле шаблона макета у меня это:
= stylesheet_link_tag "application", :media => "all"
= stylesheet_link_tag params[:controller]
.
В моем файле Application.css у меня есть
*= require_directory .
.
Я понимаю, что может изменить его к этому:
*= require_tree .
.
Чтобы включить все CSS и не иметь этой проблемы, но это похоже на плохое решение.Я хотел бы предотвратить использование любого решения, которое широко загружает эти стили сайта.
Решение
Если вы хотите, чтобы стили специфичные для контроллеров, вы можете просто включить это в макете приложения:
<%= stylesheet_link_tag controller_name, media: "all", "data-turbolinks-track" => true %>
.
В вашем Application.css не называйте какие-либо контроллерные зависимости в вашем манифесте Генеракодицетагкода;Относиться к стилям контроллера стилей и стилей стилей приложения в качестве независимых
Controller_Name в Rails - это метод помощника, который дает вам строкуИмя контроллера:
преобразует имя класса из чего-то вроде «OneModule :: Twomodule :: NeatController» - «аккуратно».