Rails 3.1 - принудительно обновить значение переменной SCSS? - PullRequest
5 голосов
/ 28 июня 2011

Я установил набор стилей [object] .css.scss в своем каталоге assets / stylesheets, чтобы они соответствовали различным представлениям в моем приложении. Каждый лист содержит набор значений переменных глобального стиля в первой строке:

@import "branding.css.scss";

И затем при необходимости обращается к значениям переменной ($ primaryColor, $ primaryColor и т. Д.) По всей библиотеке.

Это красиво сухо, но, к сожалению, Rails не обновляет таблицы стилей объектов, когда я изменяю значения переменных в файле _branding.css.scss. Я должен пойти и коснуться каждого файла, прежде чем SCSS перекомпилирует библиотеку стилей объекта с обновленным значением переменной.

Это незначительный недостаток, но он нарушает рабочий процесс, особенно когда я продолжаю очищать кеш браузера, пытаясь это исправить: /

Есть ли лучший способ организовать переменные?

Есть ли способ принудительного обновления?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

Я помещаю переменные и миксины в файл includes.css.scss и импортирую их в каждую таблицу стилей, которая требует их. Чтобы заставить Rails перекомпилироваться при изменении включаемого файла, вам нужно использовать директиву depend_on в application.js. Например:

application.css

/*
   *= depend_on includes
   *= require_self
   *= require stylesheet
*/

includes.css.scss :

$bg-color: #999;

stylesheet.css.scss

@import "includes.css.scss";

body { background: $bg-color; }
1 голос
/ 29 июня 2011

Это действительно очень раздражает.заставьте его перекомпилировать все.

Я недавно начал использовать guard-compass и guard-livereload, но у него та же проблема в 3.1.Может быть, кто-нибудь умнее меня сможет исправить это так, чтобы оно коснулось и application.css.scss?

...