grunt-contrib-cssmin :图像的相对路径未在目标缩小文件中替换

grunt-contrib-cssmin : Relative path of images is not replaced in target minified file

我正在使用 grunt-contrib-cssmin 来缩小我的 css 文件。我希望 css 文件中的相关 urls 在我的目标缩小文件中自动替换。我已经查找了这个问题并找到了两个可以用来替换 url、

的选项

target, root

我认为 target 是我应该使用的那个。我在下面的 Gruntfile.js 中尝试过,但没有得到我想要的缩小文件。

以下是Gruntfile.js

module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
  cssmin: {
    combine: {
      options: {
        target: "build/"
      },
      files: [{
        dest: 'build/app.min.css',
        src: "Modules/test/app.css"
      }]
    }
  }
});

grunt.loadNpmTasks('grunt-contrib-cssmin');

// Default task(s).
grunt.registerTask('default', ['cssmin']);
};

转换如下app.css-:

.edit {
  background: url(../../Main/img/edit.png);
}

关注app.min.css

.edit{background:url(../../Main/img/edit.png)}

我想要的是缩小后的 URL 类似于以下内容 -:

.edit{background:url(../Main/img/edit.png)}

我认为目标选项应该改变相对 URL,但在我的情况下它什么也没做。请让我知道我做错了什么。

谢谢,

苏克迪普

我认为您需要将 rebase 设置为 true,并适当地设置路径。我也在为此苦苦挣扎,而且并不明显。经过一些试验和错误后,我让它像这样工作。

    grunt.initConfig({
      cssmin: {
          options: {
              relativeTo: "./Main/img",
              target: "./build",
              rebase: true
          },
          combine: {
              files: [{
                  dest: 'build/precisionag.min.css',
                  src: "Modules/test/app.css"
              }]
          }
      }
    });

有关不同 clean-css 选项的更多信息,请参见此处 clean-css