Глобальные переменные SASS не передаются частям

В основном у меня есть структура, которая раньше отлично работала в 3.0.x, а теперь она ломается с ошибками undefined variable .

  • partials
    • _base.css.sass
    • _header.css.sass
  • main.css.sass
  • application.css.sass

application.css.sass :

//=require 'main'

main.css.sass :

@import 'partials/base'
@import 'partials/header'

Довольно простой материал.

Я получаю сообщение об ошибке на _header.css.sass поскольку он использует переменную, определенную в _base.css.sass

. Раньше у меня не было этой ошибки, и для меня это не имеет смысла, поскольку мы импортируем эти переменные в _base.css .sass в том же контексте мы импортируем _header.css.sass .

Мне придется импортировать _base.css.sass на каждом частичном тоже? В чем смысл main.css.sass , требующего глобальных переменных, если они не могут использоваться в требуемых вами собственных частичных файлах?

Если моя структура полностью неверна, дайте мне альтернативу, я Люблю предложения.

25
задан Draiken 7 June 2011 в 17:43
поделиться

3 ответа

Вы не можете использовать //=require для включения «динамических» вещей SASS, таких как миксины и переменные, потому что это используется только для включения самых «статичных» вещей (таких как чистый CSS). Вы должны @import все свои файлы в application.css.sass. Railscasts дает хорошее объяснение этого в эпизоде ​​№ 268 .

26
ответ дан 28 November 2019 в 21:38
поделиться

Это нахальный файл. Используйте @import в application.css.sass вместо require. require для простых CSS или шаблонизаторов, которые не имеют системы импорта.

0
ответ дан 28 November 2019 в 21:38
поделиться

Я думаю, что у меня была та же проблема, и мне помогло объявление переменных перед @imports. Надеюсь, это кому-нибудь поможет =).

2
ответ дан 28 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: