Имам проект за релси, който използва 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