私はAngular 2ルーティングの例に従っています。「lite」Webサーバーを使用すると、ルートからナビゲートでき、ディープリンクが機能しますが、Apacheを使用するとルートからナビゲートできますが、ルートへの直接のリンクをたどると404 Not Foundエラーが発生します。
たとえば、次の URL は、npm によってポート 3000 で開始された「lite」Web サーバーに対して機能します。
http://localhost:3000/crisis-center/2
しかし、ポート 80 で実行されている Apache に対する次の URL は失敗します。
http://localhost/crisis-center/2
The requested URL /crisis-center/2 was not found on this server.
同様の Angular 1 の問題に対して推奨される .htaccess ソリューションをいくつか試してみましたが、うまくいきませんでした。Apache で Angular 2 のルーティングとディープ リンクを使用したことがある場合は、どうやってそれを達成したか教えてください。
@RouteConfig([
{ // Crisis Center child route
path: '/crisis-center/...',
name: 'CrisisCenter',
component: CrisisCenterComponent,
useAsDefault: true
},
{path: '/heroes', name: 'Heroes', component: HeroListComponent},
{path: '/hero/:id', name: 'HeroDetail', component: HeroDetailComponent},
{path: '/disaster', name: 'Asteroid', redirectTo: ['CrisisCenter', 'CrisisDetail', {id:3}]}
])
Boot.ts
import {bootstrap} from 'angular2/platform/browser';
import {ROUTER_PROVIDERS} from 'angular2/router';
import {AppComponent} from './app.component';
bootstrap(AppComponent, [ROUTER_PROVIDERS]);