2013-08-05 29 views
5

我正在使用指南針的moovweb項目。現在,我正在實現支持2x圖像的精靈。指南針給出錯誤無法識別的文件類型:PNG'))

我在做什麼,就是讓羅盤產生1個精靈,就像這樣:

$icons-dimensions: true; 
@import "icons/*.png"; 
@include all-icons-sprites; 

然後,在此之後吧,我包括和執行SCSS文件,將產生2倍的精靈規則(使用媒體查詢):

@import "../_retina-sprites.scss"; 
$icons2x: sprite-map("icons2x/*.png"); 
.icons-logo { 
    @include retina-sprite(logo, $icons2x); 
} 

.icons袋{ @include視網膜精靈(袋,$ icons2x); }

我創造了這個_retina-sprites.scss(基於Adam Brodzinski's version)包含一個mixin添加媒體查詢規則選擇2倍的圖像,像這樣:

@import "compass/utilities/sprites";   // Include compass sprite helpers 
@import "compass/css3/background-size";  // Include helper to calc background size 

@mixin retina-sprite($name, $sprites2x) { 
    background-repeat: no-repeat; 
    @media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { 
    & { 
     $pos: sprite-position($sprites2x, $name); 
     background-image: sprite-url($sprites2x); 
     background-position: nth($pos, 1)/2 nth($pos, 2)/2; 
     @include background-size(ceil(image-width(sprite-path($sprites2x))/2) auto); 
    } 
    }  
} 

不過,我得到這個輸出生成的調用線精靈時sprite-path()

Syntax error: Unrecognized file type: png')) 

這讓我覺得,指南針寫精靈網址,而不是精靈路徑,因而令')) suffi x到文件名。

以前有人有過嗎?

回答

4

不知道會出現什麼問題,但您可以直接運行指南針,以獲得更好的輸出結果或瞭解發生的情況。

的MOOV SDK使用以下指南針命令編譯您的資產:

compass compile <my-project-path>/assets --relative-assets --sass-dir stylesheets --css-dir stylesheets/.css --images-dir images --require sass/plugin 

希望運行手動可以爲您提供更多的信息。

+2

嗨@noj,這真的幫助我確定問題。原因是在羅盤版本0.11.7(antares)之後包含了許多spriting功能。我正在使用那些代碼片段中的一些。在我的本地環境中,我使用了指南針0.12.2(Alniman),它工作正常。但是在集成環境中,我只有0.11.7,這不起作用。謝謝你的幫助! – fegemo

0

當我在與PNG相同的目錄中有JPG圖像時,我得到了相同的錯誤,有趣。

一旦我刪除這些JPG,它的工作。

0

今天我遇到這個錯誤。

這實際上是由於空(如在0kb)PNG文件