0

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>

どこが間違っているのかわかりません

4

0 に答える 0