Sass Compass给出错误(无法识别的文件类型:png';))

Sass Compass给出错误(无法识别的文件类型:png';)),sass,compass-sass,moovweb,Sass,Compass Sass,Moovweb,我正在从事一个使用compass的moovweb项目。现在,我正在为精灵实现对2x图像的支持 我正在做的是让compass生成1x精灵,如下所示: $icons-dimensions: true; @import "icons/*.png"; @include all-icons-sprites; 然后,在此之后,我将包括并执行scss文件,该文件将生成2x的sprite规则(使用媒体查询): .图标包{ @包括视网膜精灵(袋子,$icons2x); } 我创建了这个_retina-sprit

我正在从事一个使用compass的moovweb项目。现在,我正在为精灵实现对2x图像的支持

我正在做的是让compass生成1x精灵,如下所示:

$icons-dimensions: true;
@import "icons/*.png";
@include all-icons-sprites;
然后,在此之后,我将包括并执行scss文件,该文件将生成2x的sprite规则(使用媒体查询):

.图标包{ @包括视网膜精灵(袋子,$icons2x); }

我创建了这个_retina-sprites.scss(基于)来包含一个mixin,以添加媒体查询规则来选择2x图像,如下所示:

@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()
的行上生成sprite时,我得到了这个输出:

这让我觉得compass是在写一个精灵url而不是精灵路径,因此给文件名加了
后缀


以前有人遇到过这种情况吗?

不确定可能是什么问题,但您可以直接运行compass,以获得更好的输出或对正在发生的情况的了解

moov SDK使用以下compass命令编译您的资产:

compass compile <my-project-path>/assets --relative-assets --sass-dir stylesheets --css-dir stylesheets/.css --images-dir images --require sass/plugin
compass compile/assets——相对资产——sass-dir样式表——css-dir样式表/.css——images-dir-images——需要sass/plugin

希望手动运行它可以为您提供更多信息。

有趣的是,当我将JPG图像与PNG放在同一目录中时,我遇到了相同的错误


一旦我删除了那些JPG,它就工作了。

我今天遇到了这个错误


这实际上是由于空的(如0kb)PNG文件

Hi@noj,这确实帮助我找到了问题所在。原因是在compass版本0.11.7(antares)之后包含了很多精灵功能。我在代码片段中使用了其中的一些。在我当地的环境中,我有compass 0.12.2(Alniman),它工作得很好。但是在一个集成环境中,我只有0.11.7,这不起作用。谢谢你的帮助!
Syntax error: Unrecognized file type: png'))
compass compile <my-project-path>/assets --relative-assets --sass-dir stylesheets --css-dir stylesheets/.css --images-dir images --require sass/plugin