Ich habe eine ASP.NET CORE App, die angular2 Routing verwendet. Laufende lokale Routen werden wie erwartet aufgelöst. Wenn ich auf dem Server (mit IIS 7) publiziere, scheinen die Routen das Ordnerverzeichnis hinzuzufügen, in dem ich es veröffentlicht habe. Im Beispiel unten ist die "Seiten-URL" die Seite, zu der ich navigiere, aber die "Ergebnis-URL" ist, was in der Browser-Adressleiste angezeigt wird.AngularJS 2 Routing auf IIS
Seite url ->http://myserver/orders
Ergebnis url ->http://myserver/orders/orders
Alle Ideen, warum dies geschieht? Ist dies eine IIS-Einstellung oder ein Angular-Routing-Problem oder ein .NET CORE-Konfigurationsproblem?
Hier ist die Art, wie ich meine Routen in angular2 konfiguriert habe.
export const appRoutes:Routes = [
{ path: 'orders', component: OrderSearchComponent, resolve: {orders: OrderSearchResolverService}},
{ path: 'orders/new', component: CreateOrderComponent},
{ path: 'orders/:id', component: OrderDetailComponent, canActivate: [OrderRouterActivator]},
{ path: '404', component: Error404Component},
{ path: '', redirectTo: 'orders', pathMatch: 'full'},
{ path: 'user', loadChildren: 'app/user/user.module#UserModule' }
]
Auf meinem dev Box ist der href gesetzt liegen diese:
<base href="/">
Das ist nicht auf IIS arbeiten, so habe ich ohne Glück viele verschiedene Einstellungen ausprobiert.
<base href=""> and <base href="/order/"> both return:
http://myserver/orders/orders
Irgendwelche Vorschläge?
Bearbeiten - um anzuzeigen, wo appRoutes verwendet wird.
@NgModule({
...
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes)
]...
Bitte zeigen Sie Ihre asp.net Core-Route-Konfiguration. Haben Sie in der Konfiguration eine Standardroute sowie eine "spa-fallback" Route angegeben, so dass nur 'index.html' /' index.cshtml' geladen wird? –
Meine Konfiguration ist oben gezeigt. – Cooper