2017-02-22 39 views
2

Так что мне нужно создать сборку, которая может работать без запуска сервера.Angular 2 ng build

Пробег ng build. У вас есть папка dist.

Когда я бегу index.html им получить ошибку, как

GET file:///D:/inline.bundle.js net::ERR_FILE_NOT_FOUND

Он ищет, что js файл в корне моего D: // диск, а не в папке проекта

Так ладно , я снял <base href="/"> из моего index.html и получил эту ошибку:

Unhandled Promise rejection: No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document. ; Zone: <root> ; Task: Promise.then ; Value: ZoneAwareError {__zone_symbol__error: Error: No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to…, __zone_symbol__stack: "Error: No base href set. Please provide a value fo…testing1/dist/vendor.bundle.js:28631:62) [<root>]", __zone_symbol__message: "No base href set. Please provide a value for the A…HREF token or add a base element to the document."} Error: No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document. 
at new PathLocationStrategy (file:///D:/angular/testing1/dist/vendor.bundle.js:66150:19) [angular] 
at provideLocationStrategy (file:///D:/angular/testing1/dist/vendor.bundle.js:62944:9) [angular] 
at AppModuleInjector.get (/AppModule/module.ngfactory.js:164:77) [angular] 
at AppModuleInjector.get (/AppModule/module.ngfactory.js:169:84) [angular] 
at AppModuleInjector.get (/AppModule/module.ngfactory.js:198:151) [angular] 
at AppModuleInjector.createInternal (/AppModule/module.ngfactory.js:241:60) [angular] 
at AppModuleInjector.NgModuleInjector.create (file:///D:/angular/testing1/dist/vendor.bundle.js:56323:76) [angular] 
at NgModuleFactory.create (file:///D:/angular/testing1/dist/vendor.bundle.js:56291:18) [angular] 
at file:///D:/angular/testing1/dist/vendor.bundle.js:38426:61 [angular] 
at Object.onInvoke (file:///D:/angular/testing1/dist/vendor.bundle.js:28762:37) [angular] 
at Zone.webpackJsonp.528.Zone.run (file:///D:/angular/testing1/dist/polyfills.bundle.js:2591:43) [<root> => angular] 
at NgZone.run (file:///D:/angular/testing1/dist/vendor.bundle.js:28631:62) [<root>] 

Так angular2router не работает без <base> и index.html не могут найти свои локальные файлы с <base>

Как я могу решить это?

+0

Просто положите обратно но с. –

ответ

0

Использование --base-HREF с соответствующим основанием

С помощью нг сборки:

--base-href (String) (Default: /)
aliases: -bh

0
Bonjour, 

<div>Ma question concerne ng build d'un projet angular 2 dont voici un exemple : 

[экран выстрел из моего проекта] [1]

Quand j'exécute la commande ng build, toutes les ressources de mon projet sont transférées dans le répertoire "dist", donc normale jusque là. 
Cependant, dans ce dossier, je constate que certains de mes fichiers media et fonts qui se trouvent dans "assets", se retrouve en double à l’extérieur de ce dossier (Voir copie écran ci-dessous). 
Par exemple, le fichier image back.jpg qui est rangé dans ponyracing/dist/assets/img/back.jpg, se retrouve en double à l’extérieur dans ponyracing/dist/back.jpg 

De plus, voici la config de angular-cli.json : 

"styles": [ 
    "assets/css/main.css", 
    "styles.css", 
    ... 
] 

Ma question est de savoir si ce problème de fichiers doubles est causé par mon fichier main.css externe que j’ai rangé dans ponyracing/dist/assets/css/main.css et que dans ce fichier, le path des images est relatif au dossier ponyracing/dist/assets/img ? 

Exemple : body { background: url(../img/back.jpg) }; 

Merci pour votre aide.</div> 
0

Добавить "." к вашей базе href, например:

<base href="./"> 

Благодаря комментарию Адмира, это сработало для меня.

0

Используйте ниже сценарий в index.html.

<script> 
    document.write('<base href="' + String(document.location).replace('index.html','') + '">') 
</script> 

дайте мне знать, это работает для вас или нет.

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

  • Нет связанных вопросов^_^