我在生产模式下重定向我的应用时出现问题。当我有网址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吗?
答案 0 :(得分:1)
您需要更新应用程序的基本href。如果您使用__getitem__()
,我不会推荐@ Daniel的答案,因为有一种更简单的方法。
使用angular-cli
,您可以使用:angular-cli
,这将更新生产版本基础href。这是一种更好的方法,因为在环境之间切换时,您无需在ng build --prod --bh /appname/
中手动更新此方法。