как обрабатывать абсолютный URL-адрес css с помощью grunt-usemin

Я использую grunt-usemin для создания проекта приложения.

css связаны с абсолютными путями:

  <!-- build:css(.) /app/css/libs.css -->
  <link rel="stylesheet" href="/app-dev/lib/css/style.css"/>
  <link rel="stylesheet" href="/app-dev/lib/css/another.css">
  <!-- endbuild -->

файлы javascript связаны относительными путями:

  <!-- build:js js/app.js -->
  <script src="js/app.js"></script>
  <script src="js/services.js"></script>
  <!-- endbuild -->

конфиг хрюка:

  useminPrepare: {
        html: 'app-dev/index.html',
        options: {
              dest: 'app'
        }
  },
  usemin: {
        html: ['app/{,*/}*.html'],
        css: ['app/css/{,*/}*.css'],
        options: {
              assetsDirs: ['app']
        }
  }

Проблема в том, что в выводе css есть один запасной уровень подпапки:

app
- app
- - css
- - - libs.css
- js
- - app.js
- etc

в то время как ссылка в выводимом html-файле верна

<link rel="stylesheet" href="/app/css/libs.css">

Как вывести css в правильную иерархию папок?


person François Romain    schedule 16.01.2014    source источник
comment
на данный момент я добавил две хакерские задачи с contrib-copy для копирования файлов и contrib-clean для удаления старой папки…   -  person François Romain    schedule 17.01.2014
comment
Исправляет ли это само себя, если вы измените <!-- build:css(.) /app/css/libs.css --> на <!-- build:css(.) css/libs.css -->? В противном случае я бы посмотрел на изменение вашего шаблона подстановки с {,/} на */   -  person Scottux    schedule 19.02.2014


Ответы (2)


Попробуйте удалить / перед вашим путем сборки

<!-- build:css app/css/libs.css -->
<link rel="stylesheet" href="/app-dev/lib/css/style.css"/>
<link rel="stylesheet" href="/app-dev/lib/css/another.css">
<!-- endbuild -->
person xphong    schedule 16.01.2014

Файл HTML также должен находиться в папке «app», поэтому вы можете удалить «/app-dev».

person Thomas Decaux    schedule 29.08.2014