Angular 2 Router 3.0.0仍然在路由上显示/#/ hash

时间:2016-10-27 14:48:35

标签: angular angular2-routing angular2-template

我的包json有"@angular/router": "3.0.0"

我的应用路线:

export const routeConfig: Routes = [
  {path: '', redirectTo: 'use-cases', pathMatch: 'full'},
  {path: 'use-cases', component: UseCasesComponent},
  {path: 'add', component: AddComponent},
  {path: 'github', component: RepoBrowserComponent,
    children: [
      {path: '', component: RepoListComponent},
      {path: ':org', component: RepoListComponent,
        children: [
          {path: '', component: RepoDetailComponent},
          {path: ':repo', component: RepoDetailComponent}
        ]
      }]
  }
];

但是当我访问我的应用程序时,我仍然会在网址的基础上得到/#/

1 个答案:

答案 0 :(得分:1)

默认情况下,Angular使用PathLocationStrategy(不含/#/)。

如果您提供

providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}]

代码中的某处,路由器使用/#/

这通常是因为当使用没有HTML5 pushState支持的服务器时,PathLocationStrategy会导致404错误。 如果您的服务器支持HTML5 pushState,只需删除上面的提供程序。