2017-01-31 3 views
2

Es gibt einige ähnliche Fragen, aber ich habe noch keine Lösung für dieses Problem gefunden.Dart/Angular 2: Pub servieren 404 auf Seite neu laden

Lets ich

pub dienen --port 13371

um lokal mein Eckige 2/Dart-Anwendung zu starten verwenden nehmen. In der Basisdatei habe ich einen Router wie folgt konfiguriert:

@RouteConfig(const [ 
    const Route(
     path: '/home', 
     name: 'Home', 
     component: HomeComponent, 
     useAsDefault: true 
), 
    const Route(
     path: '/about', 
     name: 'About', 
     component: AboutComponent 
) 
]) 
class AppComponent {} 

und eine Vorlage wie folgt aus:

<nav> 
     <ul> 
     <li> 
      <a [routerLink]="['Home']">Home</a> 
     </li> 
     <li> 
      <a [routerLink]="['About']">About</a> 
     </li> 
     </ul> 
    </nav> 

In Dartium oder einen anderen Browser ich http://localhost:13371/ gehen, die mich zu http://localhost:13371/home umleitet. Immer wenn ich drücke jetzt lade ich bekomme einen 404 Fehler.

Der Grund dafür ist die Serverkonfiguration. Wenn angular die URL ändert, weiß es, wohin es geht und wie die URL neu geschrieben wird. Aber für den Server /home oder /about existiert nicht.

Aber meine Frage ist, wie kann ich pub konfigurieren, um immer zu index.html umzuleiten, so dass ich aktualisieren und weitergeleitet werden kann dann subsite? Gibt es eine Konfiguration, die zu pubspec.yaml hinzugefügt werden kann?

Antwort

3

Entweder

bootstrap(AppComponent, [ 
    /* other providers */, 
    provide(LocationStrategy, useClass: HashLocationStrategy), 
]) 

hinzufügen oder einen Proxy wie Nginx verwenden, das Umschreiben unterstützt wird. pub selbst unterstützt es in keiner Weise.

Siehe auch https://pub.dartlang.org/packages/pub_serve_rewrites

0

keinen Schrägstrich auf dem Pfad "/" anwenden. Versuchen Sie dies:

+0

Das gilt nicht für den Router in Dart Angular 2/3 verwendet. –

Verwandte Themen