SASS Global Variables + Rails 3.1 - PullRequest
       26

SASS Global Variables + Rails 3.1

11 голосов
/ 18 июня 2011

Я использую Rails 3.1RC4 с настройкой SASS по умолчанию. У меня есть следующие файлы

application.css.scss

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree . 
*/

_variables.css.scss

$var1 : somevalue;
...

site_layout.css.scss

@import "variables";
... Some Sass Code

Но я не могу получить доступ к переменным, определенным в _variables.css.scss в site_layout. Что я делаю неправильно? Rails, очевидно, находит файл переменных, так как не выдает ошибку «file not found», что происходит, если я изменяю имя файла импорта. Тем не менее, перемены не переносятся.

Есть идеи?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 июня 2011

Эта проблема, похоже, исправлена ​​в последней версии направляющих и звездочек. В вашем гемфайле:

gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "3-1-stable"
0 голосов
/ 21 июня 2011

Первая часть вашего вопроса (фрагмент кода application.css.scss), похоже, здесь не имеет никакого отношения, поскольку это просто закомментированный код, поэтому я пропущу эту часть.

Длявторой фрагмент кода, я не верю, что SASS настроен на импорт «частичного», как вы делаете здесь.Вам лучше сделать что-то вроде этого:

_variables.scss (переименовано из _variables.css.scss ):

$var1: somevalue;

Обратите внимание, что подчеркивание в вашем имени файла не требуется, как это было бы для частичного Ruby.Вы также можете легко назвать его variables.scss, если вы измените оператор импорта на @import "variables";

site_layout.scss (переименован в site_layout.css.scss )

@import "_variables";

.test_thingy {
  color: $var1;
  }

При этом будет создан файл site_layout.css, содержащий следующую замену кода:

.test_thingy {
  color: somevalue; }

Обратите внимание, что нет необходимости иметь файлы с такими именами, как filename.css.scss, как выбудет с файлами HAML / ERB.Просто назовите файл так, как вы хотите.Например, filename.scss заставит SASS автоматически генерировать файл CSS с именем filename.css.

...