не могу минимизировать изображения с помощью плагина grunt grunt-contrib-imagemin

Я только что скачал свежую копию йомена. Когда я строю с помощью grunt, я вижу, что все мои изображения были преобразованы, а их имена файлов были переименованы.

Однако ссылки в файле html не ссылаются на новые имена.

Есть идеи, почему?

imagemin: {
  dist: {
    files: [{
      expand: true,
      cwd: '<%= yeoman.app %>/img',
      src: '{,*/}*.{png,jpg,jpeg}',
      dest: '<%= yeoman.dist %>/img'
    }]
  }
},

usemin: {
  html: ['<%= yeoman.dist %>/{,*/}*.html'],
  css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  options: {
    dirs: ['<%= yeoman.dist %>']
  }
},

ngapp/views/main.html

<a href="#red-green" style="background-image: url('img/demo/red-green.png');background-repeat: no-repeat;"></a>

person Karan    schedule 14.08.2013    source источник
comment
Что это их тоже переименовывает?   -  person dc5    schedule 15.08.2013
comment
819d856e.красно-зеленый.png   -  person Karan    schedule 15.08.2013


Ответы (2)


Переименование выполняется задачей grunt-filerev в вашем Gruntfile. Задача usemin заботится об обновлении ссылок на эти переименованные файлы для скриптов, таблиц стилей и изображений, но не поддерживает встроенные стили. Вы должны либо переместить ссылку background-image в таблицу стилей, либо отключить задачу rev.

person passy    schedule 15.08.2013
comment
добавление его в таблицу стилей тоже не работает. Он остался неминифицированным. например. body{background-image:url(img/demo/red-green.png)} - это не изменилось - person Karan; 16.08.2013

Проблема, вероятно, заключается в том, что ваш URL-адрес изображения в вашем HTML-файле является относительным путем, и usemin не может преобразовать новый путь изображения в ваш URL-адрес. См. комментарий @eddiemonge на github для лучшего объяснения: https://github.com/yeoman/grunt-usemin/issues/108

У меня была та же проблема, и я исправил ее, используя фиксированный путь (/img/demo/red-green.png, в вашем случае), который отлично работает, пока ваш каталог дистрибутива использует /img, а img также находится вне корня вашего приложение при разработке.

person harrysny    schedule 07.12.2013
comment
Здесь это было бы не так, поскольку исходные изображения были переименованы. Так что проблема не в пути, а в том, что ссылка на имя файла не обновляется (его таблица стилей). У меня такая же проблема, как у него. - person Nicholas Pufal; 10.01.2014
comment
Николас, в моем случае файлы изображений тоже были переименованы, и это была ссылка на имя файла, как вы утверждаете. Статья, о которой я упоминал выше, объясняет эту же проблему. - person harrysny; 26.02.2014