Неопределенный миксин с бурбоном и аккуратными драгоценными камнями

Я использую бурбон и аккуратные драгоценные камни для создания дизайна приложения рельсов. Мое application.css.scss содержит это:

 @import "bourbon";
 @import "neat";
 @import "main";

Но если я запускаю 'rake assets:precompile', то происходит эта ошибка:

rake aborted!
Undefined mixin 'outer-container'.
(in /Users/anonymous/example/app/assets/stylesheets/admin/main.css.scss)
/Users/anonymous/example/app/assets/stylesheets/admin/main.css.scss:5:in  `outer-container'
/Users/anonymous/example/app/assets/stylesheets/admin/main.css.scss:5

Файл main.css.scss содержит это:

footer#page_footer { 
 @include outer-container;
 nav{
  @include span-columns(6);
  @include shift(3);
  section#about_me_footer, section#contact_footer, section#miscellaneous_footer {
  @include span-columns(2 of 6);
 }
}
p {
 @include span-columns(6);
 @include shift(3);
}
}

Кто-то может дать мне несколько советов?

5 ответов

У меня была такая же проблема. Я смог заставить его работать двумя разными способами.

Первый способ, вероятно, менее желателен, но вы можете добавить свой код прямо в файл application.css.scss:

div.container {
  @include outer-container;
}

Кроме того, вы можете добавить:

@import "bourbon";
@import "neat";

В начало вашего файла main.css.scss.
Это позволяет вам сохранять ваши стили организованными.

Сайт Бурбона ссылается на страницу в своей вики, посвященную этой проблеме, но упомянутое решение не сработало для меня:

https://github.com/thoughtbot/bourbon/wiki/Rails-Help-%5C-Undefined-mixin

У меня была такая же проблема. Решением для меня было переименовать частичный файл из layout.css.scss в _layout.css.scss, Любые файлы, использующие миксины SASS, должны быть включены после загрузки этих миксов. В этом случае он пытался предварительно скомпилировать layout.css файл сам по себе, хотя для него не требовался источник микшинов, на которые он ссылался. Добавление подчеркивания заставляет прекомпилятор игнорировать этот файл, пока другой файл не потребует этого.

Согласно журналу изменений outer-container mixin был удален с версии 2.0.0. Самая высокая версия, которую вы можете использовать с outer-container это 1.8.0. При добавлении Neat через Bundler вы получите 2.0 или выше, если вы не укажете версию в своем Gemfile.

Новый способ сделать это выглядит намного проще, но это мало утешительно, если у вас есть куча неподдерживаемых scss.

FWIW это проблема, о которой сообщалось https://github.com/thoughtbot/bourbon/issues/120 Использование комментария Джеклина о добавлении операторов импорта непосредственно в мой основной файл CSS решило эту проблему. Тем не менее, я хотел бы исправить эту проблему, так как я не хочу добавлять эти операторы импорта в каждый файл, для которого я хочу использовать миксины.

У меня была такая же проблема.

У меня был div, использующий внешний контейнер @include, и второй div, содержащий @include span-columns(8). Второй div неправильно расположился вне первого, вызывая вводящую в заблуждение ошибку "Undefined mixin 'outer-container" ". Перемещение второго div внутри первого (во внешнем контейнере - в CSS и HTML) решило проблему.

Для решения описанной выше проблемы вы должны сделать то же самое, убедившись, что тег p является дочерним для нижнего колонтитула.

Другие вопросы по тегам