Ссылка на stylesheet включает в себя отображение в HTML, но стили не применяются, когда Turbolinks включен?

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

Вопрос

Я строю большой сайт и хотел бы иметь много контроллера CSS.

Я хотел бы использовать Turbolinks, но специфические стили контроллера не применяются, когда Turbolinks загружает новую страницу.

Однако, если я на той же странице и щелкнул кнопку «Обновить», стили применяются просто штрафом.Таким образом, стили в HTML, но они не применяются из-за того, как работает Turbolinks.

В моем файле шаблона макета у меня это:

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


Side Note

В моем файле 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» - «аккуратно».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top