2017-02-22 81 views
2

所以我需要创建一个不需要运行服务器就能工作的版本。Angular 2 ng build

运行ng build。有一个dist文件夹。

当我运行index.html即时得到这样的错误

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

他正在寻找的是js文件在我的d根://驱动器,而不是在一个项目文件夹

所以没关系,我从我的index.html去除<base href="/">和得到这个错误:

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="./"> 

感谢Admir的评论,这对我有效。

0

在index.html中使用以下脚本。

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

让我知道它适用于您或不。