Lorsque j'essaie d'ouvrir les routes Angular 2 à partir de la barre d'adresse, je reçois continuellement les réponses http 404, cependant la navigation vers les routes utilisant des ancres avec les directives "routerLink" fonctionne sans problème. J'ai essayé de modifier mon fichier web.config pour réécrire l'url comme indiqué dans Angular's Deployment Guide mais cela casse généralement mon routage. Enfin, j'ai inclus <base href="/">
dans mon fichier index.html, mais cela n'a pas aidé non plus. Toute aide de la communauté est très appréciée!Angular 2 Routing - Open Links de la barre d'adresse
Voici mon code composant de routage:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ClientsComponent } from './clients.component';
const routes: Routes = [
{ path: 'clients', component: ClientsComponent },
//^This does not work from address bar, only from routerLinks.
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Vous pouvez facilement résoudre ce problème enable '' # routage basé en disant '[RouterModule.forRoot (routes, {useHash: true})]' si vous n'avez pas besoin 'html5mode' routage –
Merci Pankaj, cela a fonctionné, mais je préférerais ne pas avoir le symbole # dans mes urls. On dirait une solution de contournement "hacky". Est-ce juste un problème connu avec Angular 2 et IIS? – DotNetDev
Non, cela peut arriver avec n'importe quel serveur .. pas spécifiquement avec IIS. Vous devez configurer votre serveur pour gérer cette requête. Puis-je savoir quel chargeur de module vous utilisez 'systemjs' /' weback'? –