2013-08-05 7 views
5

Ich arbeite an einem Moovweb-Projekt, das Kompass verwendet. Im Moment implementiere ich Unterstützung für 2x Bilder für Sprites.Compass gibt den Fehler Unbekannter Dateityp: png '))

Was ich tue, ist, lassen Kompass die 1x Sprite erzeugen, etwa so:

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

Und dann, direkt nach diesem, ich bin auch und Ausführen der SCSS Datei, die die Sprite-Regeln für 2x generieren (unter Verwendung von Medien-Anfragen):

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

.icons-bag { @include Retina-Sprite (Tasche, $ icons2x); }

Ich habe diesen _retina-sprites.scss (basierend auf Adam Brodzinski's version) eine mixin enthalten, um die Medienabfrage Regel hinzufügen, um die 2x Bilder zu wählen, etwa so:

@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); 
    } 
    }  
} 

Allerdings erhalte ich diese Ausgang bei der Erzeugung den Sprites auf der Linie, die ruft sprite-path():

Syntax error: Unrecognized file type: png')) 

was ich, dass Kompass denken macht, ist eine Sprit-uRL anstelle einem Sprite-Pfad zu schreiben, damit die ')) suffi geben x zum Dateinamen.

Hat jemand schon mal hier reingekommen?

Antwort

4

Nicht sicher, was das Problem sein könnte, aber Sie können Kompass direkt ausführen, um vielleicht bessere Ausgabe oder Einblick zu bekommen, was passiert.

Das moov SDK verwendet den folgenden Kompass Befehl Ihr Vermögen zu kompilieren:

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

Hoffentlich läuft manuell Sie weitere Informationen zur Verfügung stellen kann.

+2

Hallo @noj, dass hat mir wirklich geholfen, das Problem zu lokalisieren. Der Grund dafür ist, dass nach der Kompassversion 0.11.7 (antares) viele Spritfunktionen enthalten waren. Ich habe einige davon in diesem Code-Snippet verwendet. Auf meiner lokalen Umgebung hatte ich Kompass 0.12.2 (Alniman), was gut funktionierte. Aber in einer Integrationsumgebung hatte ich nur 0.11.7, was nicht funktionierte. Danke für Ihre Hilfe! – fegemo

0

Ich habe den gleichen Fehler, wenn ich JPG-Bilder im selben Verzeichnis wie die PNGs hatte, komischerweise.

Sobald ich diese JPGs entfernt hatte, funktionierte es.

0

Ich bin heute auf diesen Fehler gestoßen.

Dies war eigentlich wegen leer (wie in 0kb) PNG-Dateien