我正在使用 Angular 4。当我使用“ng serve”运行我的 Angular 应用程序时,它运行良好。那是它以上下文根作为“/”运行的时候。
我的应用程序需要使用 java webapp 进行编译,并作为 war 文件的一部分部署到 servlet-container。这个应用程序在上下文根“cmcwebapp”下运行。
我的 index.html 有元素
<base href="/">
就在“头”元素下。当我编译角度应用程序时,我使用命令
ng build --base-href cmcwebapp
编译完成后,我复制 dist 文件夹的内容并将其粘贴到 java webapp 并创建一个 war 文件。
当我使用“ http://localhost:8080/cmcwebapp ”在浏览器上运行它时。所有的 javascript、css 和图像加载正常。URL 更改为“ http://localhost:8080/cmcwebapp/cmcwebapp/ ”,我得到这个“错误:无法匹配任何路由。URL 段:'cmcwebapp'”。
我在 app.module.ts 中有这个作为我的路由定义
const appRoutes: Routes = [
{ path: 'home', component: HomeComponent },
{ path: 'distribute', component: DistributeComponent },
{ path: 'consume', component: ConsumeComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full'}
];
@NgModule({
declarations: [
AppComponent,
HomeComponent,
DistributeComponent,
ConsumeComponent
],
imports: [
BrowserModule,
HttpModule,
RouterModule.forRoot(appRoutes),
WjGridModule
],
providers: [EppmService],
bootstrap: [AppComponent]
})
export class AppModule { }
这是我的 app.component.html
<div class="menu">
<nav class="navbar navbar-inverse" style="overflow:hidden">
<div class="container-fluid">
<ul class="nav navbar-nav">
<li routerLinkActive="active"><a routerLink="home">home</a></li>
<li routerLinkActive="active"><a routerLink="distribute">Distribute</a></li>
<li routerLinkActive="active"><a routerLink="consume">Consume</a></li>
</ul>
<div class="submission">
<button type="button" class="btn btn-primary">Submit</button>
</div>
</div>
</nav>
</div>
<div class="container-fluid">
<router-outlet></router-outlet>
</div>
我无法弄清楚我哪里出错了