/ / Rails Sass: променливите не се предават с @import - css, ruby-on-rails, ruby, twitter-bootstrap, sass

Rails Sass: променливите не се приемат с @import - css, ruby-on-rail, ruby, twitter-bootstrap, sass

Имам проект за релси, който използва Twitterbootstrap и sass. Scss файловете са структурирани в папки, така че имам по-добър преглед. Сега искам да дефинирам файл за глобални променливи, който съдържа моите цветове и т.н. и предава тези стойности на други файлове, така че имам по-малко излишен код. Докато целият код е правилно импортиран и приложен, променливите не работят.

Ето текущата настройка:

стилови / application.css.scss

/*
*= require_self
*= require_tree
*/


/*
stylesheets/
|
|– base/
|   |– _reset.scss       # Reset/normalize
|   |– _typography.scss  # Typography rules
|
|– components/
|   |– _buttons.scss     # Buttons
|   |– _messages.scss    # Nachrichten
|   |– _dropdown.scss    # Dropdown
|
|– helpers/
|   |– _globals.scss     # Sass Variables
|   |– _functions.scss   # Sass Functions
|   |– _mixins.scss      # Sass Mixins
|   |– _helpers.scss     # Class & placeholders helpers

//more files omitted
|
|– vendors/
|   |– _bootstrap_and_overrides.css   # Bootstrap
|   |– _scaffolds.scss   # Bootstrap

|
|
`– main.scss             # primary Sass file
*/

Аз не използвам метода = require, тъй като не позволява използването на променливи и миксини (които бих искал да използвам).

Също така използвам main.scss, който съдържа целия внос. стилови / main.scss

@import "bootstrap-sprockets";
@import "bootstrap";

@import "helpers/globals";

@import "base/normalize";
@import "base/grid";
@import "base/typography";

@import "components/buttons";
@import "components/tables";
//other files omitted

Помощниците / globals.scss съдържа цветовите дефиниции: стилови / помощници / globals.scss

$background-light : #4e4d4a;

Файлът component / tables.scss трябва да използва тази променлива.

.table-striped > tbody > tr:nth-child(2n+1) > {
tr, td, th {
background-color: $background-light;
}
}

Според повечето информация в интернет и в. \ Tофициален SASS-ръководство това трябва да работи, тъй като аз обявих променливата и импортирам съответния файл преди файла, който го използва. Разбира се, променливата не е намерена: Undefined variable: "$background-light".

Цялата процедура изглежда доста проста, но азизчерпване на идеи. Трябва ли да задавам нещо в моите файлове на средата или трябва да променям application.css.scss? Или пък може да се намеси бутстрап?

Благодаря ви предварително за помощта.

Отговори:

4 за отговор № 1

Отбелязвайки по-горе, наскоро имаше известен опит с активите, които не работят според очакванията. Препоръката, която получих, беше да използвам:

rake assets:clobber

Това ще почисти тръбопровода.

https://github.com/rails/sprockets-rails/blob/master/README.md


9 за отговор № 2

Опитайте да премахнете *= require_tree от твой application.css.scss, Използвайки require не работи добре с sass файлове, особено когато се комбинира с @import.

Не забравяйте да импортирате / изисквате main.scss файл, когато премахнете require_tree.

https://github.com/rails/sass-rails#important-note