2014-02-12 2 views
2

У меня есть ссылки на некоторые внешние файлы JS в моем index.html, как это:Grunt продолжает извлекать мои абсолютные пути

<!-- build:js(app) /scripts/vendor.js --> 
<!-- bower:js --> 
<script src="/bower_components/jquery/jquery.js"></script> 
<script src="/bower_components/angular/angular.js"></script> 
<script src="/bower_components/jquery-ui/ui/jquery-ui.js"></script> 
<!-- endbower --> 
<!-- endbuild --> 

Каждый раз, когда я бегу grunt serve (generator-angular-fullstack), начальные слэши удаляются ("/bower_components/...""bower_components/..."), который разрушает мои страницы> 1 шаг вниз в иерархии.

Есть ли быстрое исправление?

ответ

3

От https://github.com/stephenplusplus/grunt-bower-install/issues/43#issuecomment-33799772:

'bower-install': { 
    myTask: { 
    fileTypes: { 
     html: { 
     replace: { 
      js: '<script src="/{{filePath}}"></script>' 
     } 
     } 
    } 
    } 
} 

Вы, вероятно, придется непредставленных и заново установить черновую-беседку установить, чтобы использовать этот новый тип конфигурации. Вы также должны рассмотреть возможность использования <base href="/">.

+0

Использование '<базы HREF = "/">' в одиночку не работает. – nknj

+1

'' базовый href = "/"> однозначно работает. Должна быть проблема с тем, как вы обслуживаете свой HTML. – Stephen

+0

Спасибо за это. Я всегда игнорировал foecum

2

Не знаю, почему мой bower-install конфигурации выглядит по-другому, но это, как я получил его на работу:

Оригинальные настройки:

'bower-install': { 
    app: { 
     html: '<%= yeoman.app %>/views/index.html', 
     ignorePath: '<%= yeoman.app %>/', 
     replace: { 
      js: '<script src="/{{filePath}}"></script>' 
     } 
    } 
}, 

Изменение:

 ignorePath: '<%= yeoman.app %>', 

(удаление концовку косая черта)

3

Я использую angular-generator с yo и это то, что работает для меня:

Gruntfile.js (линия 160ish)

bowerInstall: { 
    app: { 
    src: ['<%= yeoman.app %>/index.html'], 
    ignorePath: '<%= yeoman.app %>/', 
    fileTypes: { 
     html: { 
     replace: { 
      js: '<script src="/{{filePath}}"></script>', 
      css: '<link rel="stylesheet" href="/{{filePath}}" />' 
     } 
     } 
    } 
    } 
} 
1

У меня была такая же проблема. Оказалось, что я поместил базовый тег ниже раздела таблицы стилей. После того как я положил его на вершине он работал как шарм:

<base href="/"> <!- correct!! --> 
    <!-- build:css(client) app/vendor.css --> 
    <!-- bower:css --> 
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" /> 
    <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css" /> 
    <!-- endbower --> 
    <base href="/"> <!- wrong!!! --> 
+0

Это не ответ на вопрос, но сделал мой день. Спасибо! – Mauro

Смежные вопросы