angular 4を使用しています。「ng serve」で実行すると、Angularアプリは正常に動作します。それは context-root を "/" として実行するときです。
私のアプリは Java webapp でコンパイルする必要があり、war ファイルの一部として servlet-container にデプロイされます。このアプリは、コンテキスト ルート 'cmcwebapp' で実行されます。
私のindex.htmlには要素があります
<base href="/">
「頭」要素のすぐ下。angularアプリをコンパイルするときは、コマンドを使用します
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>
どこが間違っているのかわかりません