Compass/Sass检查文件是否存在

Compass/Sass检查文件是否存在,sass,compass-sass,Sass,Compass Sass,我使用compass来生成精灵,并有一个mixin来计算原始资源的宽度和高度,并将其添加到css中 我在这个mixin上还有一个选项,可以为悬停状态图像传递true或false。但是,与每次使用mixin时都必须指定此选项不同,如果文件存在,我希望在默认情况下添加悬停css 我已经在config.rb文件中添加了以下内容(到目前为止,它是我仅有的扩展名) 我的混音看起来像这样 @mixin sprite($name, $hover: true, $active: false, $pad:0){

我使用compass来生成精灵,并有一个mixin来计算原始资源的宽度和高度,并将其添加到css中

我在这个mixin上还有一个选项,可以为悬停状态图像传递true或false。但是,与每次使用mixin时都必须指定此选项不同,如果文件存在,我希望在默认情况下添加悬停css

我已经在config.rb文件中添加了以下内容(到目前为止,它是我仅有的扩展名)

我的混音看起来像这样

@mixin sprite($name, $hover: true, $active: false, $pad:0){
    @include sprite-dimensions($sprites, $name);
    background-repeat: no-repeat;
    background-image: sprite-url($sprites);
    background-position: sprite-position($sprites, $name, -$pad, -$pad);

    @if $hover == true{
        $name_hover: $name + _hover;
        @if file_exists($name_hover){
            &:hover {
                background-position: sprite-position($sprites, $name_hover, -$pad, -$pad);
            }
        }
    }

}

但是
文件_存在
函数不返回
true
;可能是因为文件的路径不正确。什么/如何指定正确的路径?

我找到了一个解决方案,它不检查文件是否存在,而是检查创建的精灵贴图(从所有确实存在的文件中)

我变了

@if file_exists($name_hover){


确保
image\u文件
是字符串。您也不需要整个
路径
变量声明行;只需将其替换为w/
image\u文件
。图像的路径可能与Ruby文件有关,而不是与调用该函数的Sass文件有关。
@if file_exists($name_hover){
@if sprite_has_selector($sprites, $name, hover){