diff --git a/lib/svg-sprite/mode/base.js b/lib/svg-sprite/mode/base.js index 91d2206be..152ee2dbb 100644 --- a/lib/svg-sprite/mode/base.js +++ b/lib/svg-sprite/mode/base.js @@ -255,24 +255,25 @@ SVGSpriteBase.prototype.declaration = function(global, local) { * @returns {string} Sprite path */ SVGSpriteBase.prototype._addCacheBusting = function(svg) { - let { sprite } = this.config; + if (!this.config.bust) { + return this.config.sprite; + } - if (this.config.bust) { - const hash = crypto.createHash('md5') - .update(svg.toString(), 'utf8') - .digest('hex') - .substr(0, 8); - const extension = path.extname(sprite); + const hash = crypto.createHash('md5') + .update(svg.toString(), 'utf8') + .digest('hex') + .substr(0, 8); + const extension = path.extname(this.config.sprite); + const filename = `${path.basename(this.config.sprite, extension)}-${hash}${extension}`; + const spriteFullPath = path.join(path.dirname(this.config.sprite), filename); - sprite = path.join(path.dirname(sprite), `${path.basename(sprite, extension)}-${hash}${extension}`); - this.data.sprite = path.relative(this._cssDest, sprite).split(path.sep).join('/'); + this.data.sprite = path.relative(this._cssDest, spriteFullPath).split(path.sep).join('/'); - if (this.config.example) { - this.data.example = path.relative(path.dirname(this.config.example.dest), sprite).split(path.sep).join('/'); - } + if (this.config.example) { + this.data.example = path.relative(path.dirname(this.config.example.dest), spriteFullPath).split(path.sep).join('/'); } - return sprite; + return spriteFullPath; }; /**