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

Я создаю большой сайт и хотел бы иметь много специфичных для контроллера css.

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

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

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

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

ПРИМЕЧАНИЕ

В моем файле application.css у меня есть

*= require_directory .

Я понимаю, что МОГУ изменить это на это:

*= require_tree .

Включить весь CSS и не иметь этой проблемы, но это кажется плохим решением. Я хотел бы предотвратить использование любого решения, которое загружает эти стили на весь сайт.


person newUserNameHere    schedule 12.04.2014    source источник


Ответы (1)


Если вам нужны таблицы стилей для конкретного контроллера, вы можете просто включить это в свой макет приложения:

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

В вашем application.css не вызывайте никаких зависимостей, ориентированных на контроллер, в вашем require манифесте; обрабатывать таблицы стилей контроллера и таблицу стилей приложения как независимые

controller_name в Rails — это вспомогательный метод, который дает вам строку имени контроллера:

Преобразует имя класса из вида «OneModule::TwoModule::NeatController» в «аккуратный».

person Richard Peck    schedule 13.04.2014
comment
<%= stylesheet_link_tag params[:controller], media: "all", "data-turbolinks-track" => true %> -- Добавление этого в мой макет решило проблему. Спасибо!!! - person newUserNameHere; 13.04.2014
comment
= stylesheet_link_tag params[:controller], media: "all", "data-turbolinks-track" => true — То же, что и выше, но в HAML для удобства. - person newUserNameHere; 13.04.2014