0

我正在使用 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>

我无法弄清楚我哪里出错了

4

0 回答 0