Ссылки на разные таблицы стилей в разных представлениях в Rails

Я хочу иметь разные наборы таблиц стилей для разных частей моего приложения Rails. Например, я хочу иметь набор таблиц стилей для целевой страницы, другой набор для внутренних admin страниц и еще один набор для зарегистрированных account страниц.

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

*= require_self
*= require_tree ./account
*/

Мой вопрос: как мне указать, что если пользователь просматривает страницы администратора или домашние страницы, таблицы стилей в папке администратора или домашней папке должны быть единственными таблицами стилей, на которые ссылаются?

Спасибо


person Arel    schedule 04.02.2013    source источник


Ответы (1)


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

Вы должны создать отдельные таблицы стилей, например, по умолчанию это будет application.css:

/*
 *= require_self
 *= require some_stylesheet
*/

Затем разделите admin.css

/*
 *= require_self
 *= require some_admin_stylesheet
*/

Затем в производственной среде расширите строку:

config.assets.precompile += ['application.css', 'admin.css']

Далее создайте отдельный макет/или создайте условное включение:

<%= stylesheet_link_tag    "admin" %>
person raiis    schedule 04.02.2013
comment
Итак, лучший способ разделить мое приложение на эти отдельные разделы — создать отдельные файлы макета и таблицы стилей верхнего уровня для каждого раздела? Это не кажется очень СУХИМ. - person Arel; 05.02.2013
comment
Вы можете пропустить макеты, просто создать условное включение таблиц стилей на основе контроллера или чего угодно... но вы не можете помещать условия в файл манифеста. - person raiis; 05.02.2013
comment
Если вы хотите, вместо того, чтобы добавлять файл в каждую среду, вы можете добавить эту строку Rails.application.config.assets.precompile += ['admin.css'] в config/initializers/assets.rb, и все готово. (Рельсы 4.2.5) - person a.barbieri; 22.05.2016