gulp.spritesmith中的路径有什么问题?

时间:2016-04-07 17:28:15

标签: gulp

我使用gulp.spritesmith制作精灵图像。我将sprite.sass导入main.sass,它似乎正在工作,除了图像路径有问题。我知道这可能是一个愚蠢的错误,但我无法弄清楚它是什么,所以如果你可以帮助我,我真的很高兴。 这是我的gulpfile片段

   gulp.task('sprite', function () {
  var spriteData = gulp.src('assets/img/icons/*.png').pipe(spritesmith({
    imgName: 'sprite.png',
    cssName: 'sprite.sass',
    imgPath: './assets/img/sprite.png' 
  }));
  spriteData.css.pipe(gulp.dest('./assets/sass/1-tools')); 
});

我包括图片

.services-item
    &-design
        @include sprite($heart-services)

这些是它在浏览器中的工作方式。

enter image description here

这是我的项目结构

enter image description here

1 个答案:

答案 0 :(得分:0)

已经快2年了。希望你已经解决了。 AFAIK,在spritesmith的这些选项中,** imgPath **是相对于css文件的请求路径,而不是SASS / images源的项目结构。

假设您的精灵图片参考的css文件位于 ./ assets / sass / 文件夹中,并且您的图片位于 ./ assets / img / 中。在这种情况下,您可以尝试将imgPath选项更改为:

imgPath: '../img/sprite.png' //use .. back to assets folder, then go down to img folder