Перенос переменных Sass через конвейер активов, Rails 3.1 rc1 - PullRequest
18 голосов
/ 28 мая 2011

Я недавно разветвил один из моих проектов Rails 3.0 с 3.1 rc1, чтобы опробовать новый конвейер ресурсов.Я использовал Sass в проекте до перехода на 3.1, поэтому я настраивал некоторые переменные и функции в отдельном файле конфигурации и позволял всем моим другим файлам sass импортировать этот один файл в первой строке.

Это прекрасно работает, чтобы не повторять некоторые цветовые коды и общую геометрию в таблицах стилей.Теперь проблема с новым конвейером активов состоит в том, что, как я понял, он преобразует файлы ".css.sass" в raw css перед добавлением его к остальной части кода.

Так что, если я укажу, вмой "application.css":

/*
 *= require ./configure
 *= require ./what_ever_other_files_i_want_to_import
*/

Я получаю сообщения об ошибках типа:

Sass::SyntaxError
    Undefined variable: "$interactive".

Когда я пытаюсь получить доступ к файлу: http://localhost:3000/assets/application.css

Любые идеи

Ответы [ 2 ]

15 голосов
/ 28 мая 2011

Sass поддерживает Partials . Таким образом, вы можете включить свою отдельную конфигурацию в __configuration.sass_ и ссылаться на нее с помощью

@import "configuration";

из вашего основного sass-файла.

2 голосов
/ 03 февраля 2014

К сожалению, я обнаружил, что переменные SASS зависят от страницы.

Если вы хотите перенести ваши переменные во все файлы, удалите *= require_tree . строка из файла application.css.scss и замените ее директивой @import "layout.css.scss"; для импорта каждого файла sass вручную.

Да, вы должны @import каждый файл

...