Глобальные переменные SASS + Rails 3.1

Я использую 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 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, по-видимому, находит файл переменных, поскольку он не выдает ошибку "файл не найден", что делает, если я изменю имя файла импорта. Тем не менее, вары не переносятся.

Любые идеи?

Спасибо!

Ответ 1

Проблема, похоже, исправлена ​​с последней версией рельсов и звездочек. В вашем gemfile:

gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "3-1-stable"

Ответ 2

Первая часть вашего вопроса (фрагмент кода 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.