2016-06-15 6 views
0

私は1.5のSPAをhtml5モードで使用していますが、ブラウザにURLを取得させたいのですが、これはrouteProviderに含まれていません。Angularルートにない場合ブラウザがサーバーからURLを取得するようにします

例: /は、サイトのインデックスです。 /testはサーバー上にあり、角度経路ではありません。私が/の場合、/testへのリンクをクリックしてください。/testをロードするだけです。

つまり、私がAngularアプリケーションを使用している場合は、ルートを使用したいと思いますが、内部URLにリダイレクトするのではなく、サーバーにフォールバックします。

別のドメインを使用せずにこれを行うにはどうすればよいですか?

+0

html5Mode用にサーバー側を正しく設定していない可能性はありますか?このリンクはUIルータ向けですが、同じ問題をカバーしています。 https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode – cm92

+0

これは存在しないSPAのURLに移動します。私は/ testに行き、ブラウザーを更新すると(/ testで)うまく動作します(サーバーからURLを取得します)。 – hannson

答えて

0

ui-routerを使用している場合は、移行中に提供された状態名を使用して要求された状態が見つからない場合、$stateNotFoundというイベントが発生します。このイベントハンドラーでサーバーにリクエストを送信できます

$scope.$on('$stateNotFound', function(event, unfoundState, fromState, fromParams){ 
     event.preventDefault() //first abort this transition 

     console.log(unfoundState.to); 
     console.log(unfoundState.toParams); 
     console.log(unfoundState.options); 

     window.location.href = '...'; 
}) 
関連する問題