2016-06-10 12 views
3

Wenn ich eine angular2-App erstelle, kann ich einfach in meinen dev-Ordner gehen, doppelklicke auf meine index.html und der Browser öffnet die Seite und zeigt alle Ressourcen an die App richtig - ohne lokalen dev-Server.angular2 <base href = "/"> verwirrender Browser

Aber wenn ich den <base href="/"> Tag in index.html, die ich brauche für angular's Router zu arbeiten, kann der Browser die Seite nicht mehr laden.

Mit einem dev-Server funktioniert das gut.

Kann mir jemand erklären was der Grund dafür ist ??

+0

Wo haben Sie es hinzugefügt? –

+0

Siehe auch http://stackoverflow.com/questions/34535163/angular-2-router-no-base-href-set/34535256#34535256 –

+0

Ich habe es direkt nach dem '' Tag hinzugefügt. –

Antwort

13

Wenn Sie <base href="/"> verwenden und öffnen Sie die index.html direkt Basis wird als eine Datei file:///C:/ oder ähnlich, je nachdem, wo Ihre Datei ist.

Eine Lösung ist, relativen Pfad zu verwenden: mit <base href="./"> Basis wird aktueller Ordner, wo Ihre Datei ist. Sie können dies verwenden, wenn Sie App von USB-Stick ausführen müssen, zum Beispiel

+0

Als ich' 'hatte, funktionierte meine eckige 2-Lösung lokal mit nodejs, aber wenn ich kopierte die Dateien über den IIS auf unserem Server Ich habe 404 für alle Skripte und CSS-Dateien im Index. Fügen Sie '.' vor'/'hinzu, damit es funktioniert. Vielen Dank. –

0

Ich habe ein virtuelles Verzeichnis in IIS 7.5 namens/ang2, die auf C: \ Apps \ Hallo-Welt \ dist zeigt. Ich baue das Projekt mit angular-cli (zB: "ng build - target = production" oder "ng build target = development"). Wenn ich Base HRF zu ./ es funktioniert. Ich habe es auch mit ./ang2 funktioniert. Ich habe noch kein Routing getestet, da dies ein Projekt ist, das mit dem Befehl "ng new hallo-world" erstellt wurde.

Verwandte Themen