我试图在另一个文件(home.css.scss)中引用一个文件(application.css.scss)中定义的mixin。我曾尝试将应用程序导入家中,但仍然收到“未定义的混合”错误。在rails 3.1中的scss文件之间共享mixins
有没有办法自动导入我所有的文件,或者什么是管理文件之间导入的最佳方式?
我试图在另一个文件(home.css.scss)中引用一个文件(application.css.scss)中定义的mixin。我曾尝试将应用程序导入家中,但仍然收到“未定义的混合”错误。在rails 3.1中的scss文件之间共享mixins
有没有办法自动导入我所有的文件,或者什么是管理文件之间导入的最佳方式?
我还没有能够跳转到3.1,但使用Compass & Sass已经有很长一段时间了,我发现最好是尝试从实际的CSS生成sass中分别管理mixin/definition sass。以这种方式,mixin文件可以像代码库一样自由处理,只要有需要就可以将其包含在内,而不必重复生成CSS规则。
所以,你可能有:
/* my-mixin-concern.scss */
$default_foo: 123px !default;
@mixin some-concern($foo: $default_foo) {
// do something
}
/* application.scss */
$default_foo: 321px; // optionally, pre-set the default value before import.
@import 'my-mixin-concern';
p { @include some-concern; }
/* home.scss */
@import 'my-mixin-concern';
body.home p { @include some-concern(9000px); }
这样,你明确地导入每个SCSS文件中的所有要求,同样你会如何在一个代码库这样做。
纯的Rails解
步骤1.重命名
application.css -> application.css.scss
步骤2.重构
// application.css.scss
/*
*= require_self
*/
@import "mixins.css.csss"
@import "project.css.scss"