我正在使用Compass生成CSS精灵。
我找到了一种方法,可以在不同的.scss文件中定义一次精灵并重复使用它,但我不确定这是否是正确的解决方案。
到目前为止,我找到的最好方法是:
- 创建一个
_variables.scss
分部文件 - 在
_variables.scss
分部文件中定义精灵 - 在每个.scss文件中导入
_variables.scss
分部文件
示例
_variables.scss文件:
$siteSprite-spacing: 20px;
@import "siteSprite/*.png";
firstPage.scss文件:
@import "../variables.scss";
.close {
@include siteSprite-sprite(close, true);
}
secondPage.scss文件:
@import "../variables.scss";
.viewMore {
@include siteSprite-sprite(arrow, true);
}
虽然这可行,但是...
问题在于每次Compass编译scss文件(firstPage.scss、secondPage.scss),它都会读取_variables.scss部分,然后读取所有的图片,尝试每次生成sprite。
结果是编译过程最终变成了这样:
create generated_images/siteSprite-s526a535d08.png
unchanged generated_images/siteSprite-s526a535d08.png
create css/firstPage.css
unchanged generated_images/siteSprite-s526a535d08.png
create css/secondPage.css
unchanged generated_images/siteSprite-s526a535d08.png
create css/thirdPage.css
unchanged generated_images/siteSprite-s526a535d08.png
这个非常缓慢,因为我有很多页面和很多文件在siteSprite图像文件夹中。
我该如何避免这个问题?
create
表示罗盘正在生成精灵。unchanged
应该更快。 - sam