2017-02-22 83 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> 

讓我知道它適用於您或不。