Webアプリケーションの一部をAngularで記述しました。すべてのルートが確実にカバーされるように、$routeProvider
にredirectTo
プロパティを追加して、無効なルートがAngularを使用しないWebアプリケーションのルートに返されるようにしました。
は、私が試した:URLの角度制御された部分で、このルートだけ
$routeProvider.otherwise({
redirectTo: '/'
});
しかし、明らかに、ユーザーがhttp://app.com/angular-part-of-web-app#
のようなURLにリダイレクトされますので、代わりに私はそれらをたいhttp://app.com
、の行く。
Iは、部分ブランクが「404」ページとして機能するように、その後だけ$window
オブジェクトを使用して、コントローラは、所望のページにリダイレクトすることによってこの問題を回避働いてきた:
routes.jsを
// Redirect to site list.
$routeProvider.when('/404', {
templateUrl: '/partials/404.html',
controller: 'RedirectCtrl'
});
// Redirect to the 404 page.
$routeProvider.otherwise({
redirectTo: '/404'
});
controllers.js
// Controller to redirect users to root page of site.
.controller('RedirectCtrl', ['$scope', '$window', function ($scope, $window) {
$window.location.href = '/';
}]);
しかし、これは 'あまりにもハッキーな、より良い方法でなければならない'という警告鐘を放つものです。 Angularでこれを行うより良い方法はありますか?
編集:Angular routes - redirecting to an external site?は、同じ質問に対する回答を得ていません。あまりにも速く動いているAngular世界では、以前の答えはもはや事実ではないかもしれないので、私は自分の質問を複写としてマークするのではなく、開いたままにします。あなたはこのような何か行うことができます
おそらくサーバー側で処理します。 – tymeJV
私もこれを解決しようとしています。私は、アプリケーションをAngularに切り替えて、サーバから提供されている部分をいくつか持っています。角度部分と非角度部分を接続する方法を見つける必要があります – Michael