私は次のモジュール構造を持っています:
1-RootModule
次のようにルーティングします。
const routes: Routes = [
{ path: '', redirectTo: 'app', pathMatch: 'full' }
];
2- AppModule
次のようにルーティングします。
const routes: Routes = [
{
path: 'app',
component: AppComponent,
children: [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
]
}
];
また、AppModule
はルーティングモジュールのみで次のように構成されているMainModule
をインポートします。
const routes: Routes = [
{
path: '',
component: MainComponent,
children: [
{
path: 'index',
loadChildren: '.\/..\/modules\/index\/index.module#IndexModule'
},
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
]
}
];
ここで、RootComponent
が開始点です。
@Component({
selector: "app-root",
template: "<router-outlet></router-outlet>"
})
export class RootComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
AppComponent
は次のように定義されます。
<router-outlet></router-outlet>
<app-quick-sidebar></app-quick-sidebar>
最後に、MainComponent
は次のように定義されます。
<app-header-nav></app-header-nav>
<router-outlet></router-outlet>
<app-footer></app-footer>
重要なのは、RooComponent
-> AppComponent
-> MainComponent
-> IndexComponent
これまでのところ、上記のルートでは、AppComponent
はバイパスされています!
何か案が?
ありがとう
現在のルート構成では、MainComponent
はAppComponent
のパスの子配列に構成されていません。では、なぜそれがテンプレートに表示されるのでしょうか。
現在、ルーティング構成は次のように機能します。
/app
に移動すると、AppComponent
に移動します/index
に移動すると、IndexComponent
に移動します。RooComponent
-> AppComponent
-> MainComponent
-> IndexComponent
の望ましい動作を実現するには、ルート構成は次のようになります。
const routes: Routes = [{
path: '',
component: AppComponent,
children: [{
path: '',
component: MainComponent,
children: [{
path: '', redirectTo: 'index', pathMatch: 'full'
}, {
path: 'index',
loadChildren: '.\/..\/modules\/index\/index.module#IndexModule'
}]
}]
}];
返信いただきありがとうございます。あなたの解決策は元の問題を解決しました。しかし今、私は別の問題を見ています。更新されたルーティングファイルは次のとおりです。
1- root-routing.module.ts
_const routes: Routes = [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
];
_
2- app-routign.module.ts
_const routes: Routes = [
{
path: '',
component: AppComponent,
children: [
{
path: '',
component: Layout.HeaderFooterMainComponent,
children: [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
},
{
path: 'index',
loadChildren: '.\/modules\/index\/index.module#IndexModule'
},
{
path: '404',
loadChildren: '.\/modules\/not-found\/not-found.module#NotFoundModule'
},
{
path: '**',
redirectTo: '404',
pathMatch: 'full'
}
]
}
]
}];
_
3- index.module.ts
_const routes: Routes = [
{
path: '',
component: Layout.AsideLeftDefaultComponent,
children: [
{
path: '',
component: IndexComponent
}
]
}];
_
ここで、どこにも存在しないURL _/index/d
_にアクセスしようとすると、/ 404ページにリダイレクトされますが、_styles.bundle.css
_は_/index/styles...
_ではなく_/styles.bundle.css
_から読み込まれます。 )__。 index
はサブフォルダーと見なされるようになりました!なぜそれが起こっているのですか?