В основном у меня есть структура, которая раньше отлично работала в 3.0.x, а теперь она ломается с ошибками undefined variable
.
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
, требующего глобальных переменных, если они не могут использоваться в требуемых вами собственных частичных файлах?
Если моя структура полностью неверна, дайте мне альтернативу, я Люблю предложения.
Вы не можете использовать //=require
для включения «динамических» вещей SASS, таких как миксины и переменные, потому что это используется только для включения самых «статичных» вещей (таких как чистый CSS). Вы должны @import
все свои файлы в application.css.sass
. Railscasts дает хорошее объяснение этого в эпизоде № 268 .
Это нахальный файл. Используйте @import
в application.css.sass
вместо require
. require
для простых CSS или шаблонизаторов, которые не имеют системы импорта.
Я думаю, что у меня была та же проблема, и мне помогло объявление переменных перед @imports. Надеюсь, это кому-нибудь поможет =).