静的ディレクトリからAngularJSをロードするExpressを使用しています。通常、http://localhost/
Expressが私とすべての正しいAngularファイルなどを提供するように要求します。私のAngularアプリでは、これらのルートを設定し、 :index.html
のコンテンツを置き換えます。ng-view
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
メインページには、へのリンクがあります。<a href="/project/{{project.id}}">
これにより、テンプレートが正常に読み込まれ、指定しhttp://localhost/project/3
たIDまたはIDに移動します。問題は、ブラウザをページに誘導しhttp://localhost/project/3
たり、ページを更新したりしようとすると、リクエストがExpress / Nodeサーバーに送信され、が返されることCannot GET /project/3
です。
これに対応するためにExpressルートを設定するにはどうすればよいですか?Angularでの使用が必要になると$location
思いますが(ただし、使用する醜い検索や#hashesは避けたいと思います)、これを処理するためにExpressルートを設定する方法がわかりません。
ありがとう。