0

私はAngular 2のディープリンクを実装しようとしています。クライアントからMVCを完全に削除しました。しかし、それは私がもはやMVCルータを使用していないことを意味します。MVCのないAspNetCoreのAngular2ディープリンク

誰かがMVCを使用しないでAngular 2ディープリンクを動作させる方法を教えてください。

私のサンプルアプリはhttps://github.com/tonywr71/Snazzle

答えて

1

に位置していますあなたは角ルータに依存する必要があります。一般的には、リクエストごとにサーバーからindex.html(またはdefautのもの)のみを提供する必要があります(または404ステータスをフィルタリングして、その場合はindex.htmlを送信することができます)。角は残りをするでしょう。 404をキャッチし、あなたがStartup.csファイルで、あなたの設定方法にこれを追加することができますasp.netコアapllicationにリダイレクトするように

app.Use(async (context, next) => 
{ 
    await next(); 
    if(context.Response.StatusCode == 404) 
    { 
     context.Request.Path = "/"; 
     await next(); 
    } 
}); 
+0

いや、私は角度ルータに依存する必要があります知っています。しかし、私がもっと知る必要があるその傍受。また、外部から提供された(angle2以外の)URLをすべて1つの場所にリダイレクトするのではなく、最初にチェックを行っているので、少し効率的ではありませんか? – tone

+0

私はUseStaticFiles呼び出しの後にStartup.csのConfigureに入れたこのコードを見ましたが、うまくいかなかった: app.Use(async(context、next)=> { await next(); if(context.Response.StatusCode == 404 &&!Path.HasExtension(context.Request.Path.Value)) { context.Request.Path = "/ cats-by-owner-gender"; //角のルートページはこちら await next(); } }); – tone

+0

私の答えは私にとってうまくいくもので更新しました。 – rook

関連する問題