Подтвердить что ты не робот

Совместное использование миксов между файлами scss в рельсах 3.1

Я пытаюсь ссылаться на mixin, определенный в одном файле (application.css.scss) в другом (home.css.scss). Я попытался импортировать приложение в дом, но все равно получаю ошибку "Undefined mixin".

Есть ли способ автоматически импортировать все мои файлы или как лучше всего управлять импортом между файлами?

4b9b3361

Ответ 1

Я еще не смог сделать переход к 3.1, но с помощью Compass и Sass долгое время я нашел, что лучше всего попробуйте управлять смесью/определение sass отдельно от вашего фактического CSS-генерации sass. Таким образом, файлы mixin можно обрабатывать свободно, как библиотеки кода, которые включены везде, где это необходимо, без повторного создания правил CSS.

Итак, у вас может быть:

/* my-mixin-concern.scss */
$default_foo: 123px !default;

@mixin some-concern($foo: $default_foo) {
  // do something
}

/* application.scss */
$default_foo: 321px; // optionally, pre-set the default value before import.
@import 'my-mixin-concern';  
p { @include some-concern; }

/* home.scss */
@import 'my-mixin-concern';
body.home p { @include some-concern(9000px); }

Таким образом, вы явно импортируете все требования для каждого файла scss, аналогично тому, как это сделать в библиотеке кодов.

Ответ 2

Решение Pure Rails

Шаг 1. Переименовать

application.css -> application.css.scss

Шаг 2. Рефакторинг

// application.css.scss

/*
 *= require_self
*/

@import "mixins.css.csss"
@import "project.css.scss"