角度路由 - 将url重定向到组件

时间:2017-11-29 08:34:25

标签: angular angular2-routing angular2-template angular5 angular4-router

我在生产模式下重定向我的应用时出现问题。当我有网址http://server.com/projectname/dashboard时,服务器响应IIS错误页面404.我必须使用http://server.com/projectname打开应用,然后点击链接,例如:

<a [routerLink]="'dashboard'">Dashboard</a>

在html中我有<base href="./">,这是我的路由器:

const appRoutes: Routes = [
    { path: '', redirectTo: 'dashboard', pathMatch: 'full', canActivate: [AuthGuard] },
    { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard]},
    { path: '400', component: ErrorComponent, canActivate: [AuthGuard] },
    { path: '401', component: ErrorComponent, canActivate: [AuthGuard] },
    { path: '404', component: ErrorComponent, canActivate: [AuthGuard], 
    { path: '**', redirectTo: '/404' }
]

@NgModule({
    imports: [
        RouterModule.forRoot(appRoutes)
    ]
})

在开发模式中,我有网址http://localhost:4200/dashboard,我应该重定向。在开发中是url localhost:4200 /仪表板,在生产中是server.com/appname/dashboard吗?

1 个答案:

答案 0 :(得分:1)

您需要更新应用程序的基本href。如果您使用__getitem__(),我不会推荐@ Daniel的答案,因为有一种更简单的方法。

使用angular-cli,您可以使用:angular-cli,这将更新生产版本基础href。这是一种更好的方法,因为在环境之间切换时,您无需在ng build --prod --bh /appname/中手动更新此方法。

Set base href dynamically - Angular 2 / 4