2017-02-22 4 views
2

Also muss ich einen Build erstellen, der funktionieren kann, ohne einen Server zu betreiben.Angular 2 ng Build

Führen Sie ng build. Habe einen dist Ordner.

Wenn ich laufe index.html im erhalte eine Fehlermeldung wie

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

Er sucht dass js Datei in der Wurzel meines D: // Antrieb, nicht in einem Projektordner

So in Ordnung i entfernt, wobei ein <base href="/"> von meinem index.html und bekam diesen Fehler:

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>] 

So angular2router funktioniert nicht ohne <base> und index.html kann meine lokalen Dateien mit <base>

Wie kann ich sie lösen nicht finden?

+0

Setzen Sie einfach aber mit. –

Antwort

0

Verwenden --base-href mit einer geeigneten Base

Von ng Hilfe bauen:

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

0
Bonjour, 

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

[Screenshot von meinem Projekt] [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

Füge hinzu ein "." zu Ihrer Basis href, wie folgt:

Dank Admir's Kommentar funktionierte das für mich.

0

Verwenden Sie das folgende Skript in index.html.

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

lassen Sie mich wissen, es funktioniert für Sie oder nicht.