Ответ 1
Проблема, похоже, исправлена с последней версией рельсов и звездочек. В вашем gemfile:
gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "3-1-stable"
Я использую 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, по-видимому, находит файл переменных, поскольку он не выдает ошибку "файл не найден", что делает, если я изменю имя файла импорта. Тем не менее, вары не переносятся.
Любые идеи?
Спасибо!
Проблема, похоже, исправлена с последней версией рельсов и звездочек. В вашем gemfile:
gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "3-1-stable"
Первая часть вашего вопроса (фрагмент кода 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
.