2017-03-24 4 views
0

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 zum Serverstamm und nicht zur Website, auf der sie bereitgestellt werden, aufgelöst zu werden. Die Seite wird jedoch dennoch gerendert. 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.Angular2 Routing mit .NET Core

page url --> http://myserver/myapp/home 

result url --> http://myserver/home 

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.

const routes: ClientRouterConfig = [ 
    { displayName: 'Dashboard', icon: 'fa fa-tachometer', path: '', redirectTo: 'home', pathMatch: 'full' }, 
    { showInNavigationMenu: true, displayName: 'Dashboard', icon: 'fa fa-tachometer', path: 'home', component: HomeComponent }, 
    { showInNavigationMenu: true, displayName: 'New Work Order', icon: 'fa fa-plus', path: 'workorder', component: WorkorderComponent }, 
    { showInNavigationMenu: false, displayName: 'Work Order', icon: 'fa fa-wrench', path: 'workorder/:id', component: WorkorderComponent }, 
    { showInNavigationMenu: false, displayName: 'New Task', icon: 'fa fa-user', path: 'task/create/:woid', component: TaskComponent }, 
    { showInNavigationMenu: false, displayName: 'Task', icon: 'fa fa-user', path: 'task/:id', component: TaskComponent }, 
    { displayName: 'Dashboard', icon: 'fa fa-tachometer', path: '**', redirectTo: 'home' } //this must be last 
]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 

export class AppRoutingModule { 
    getRoutes() { 
     return routes; 
    } 
} 
+1

Haben Sie versuchen href hinzufügen happyZZR1400

+0

Boom, es war! Danke so sehr! Wenn du das als Antwort posten willst, markiere ich es korrekt – hewstone

Antwort

1

fand ich es here:

Sie ein <base href> Element auf die index.html App hinzufügen, müssen für pushstate Routing zu arbeiten. Der Browser verwendet den Wert <base href>, um relative URLs beim Referenzieren von CSS-Dateien, Skripts und Bildern als Präfix anzugeben.

Also in Ihrem Fall denke ich, es ist:

<base href="/myapp/" >