2016-12-06 6 views
0

私はASP.Netコアアプリケーションを持っています。これはWeb API専用でAngular 2フロントエンドです。角度アプリへのルーティングを追加して角度のあるルートに移動すると、ナビゲーションが行われますが、ページを更新すると、ページが見つかりませんというエラーが表示されます。 私はすべてのヘルプは高く評価されaspnet core2とangular2ページの更新の問題

Uncaught SyntaxError: Unexpected token <

ことを行うとき、私は、クライアント側のエラーが出るAngular2 routing with Asp.net 4.5

に似書き換えルールを追加しようとしました

app.Use(async (context, next) => 
     { 
      await next(); 

      if (context.Response.StatusCode == 404 
       && !Path.HasExtension(context.Request.Path.Value)) 
      { 
       context.Request.Path = "/index.html"; 
       context.Response.StatusCode = 200; 
       await next(); 
      } 
     }); 

私は、configureメソッドでは、次のしています。ありがとう

+0

app.UseStaticFiles()の後に上記のコードがありました。注文を変更してからapp.UseStaticFiles();上のコードの後に​​動作します。 – leed1

答えて

2

あなたのコードは、実際の管理よりも醜い修正の多くです。

ルートがサーバー側で管理され、クライアント側から適切に管理されるようにする必要があります。

ASP.NET/Angular2プロジェクトでMVCを使用していたため、API呼び出しではないURLがFallBackRouteで管理されるようにしました。

 app.UseMvc(r => 
     { 
      r.MapRoute(
       name: "default", 
       template: "{controller}/{path?}/{action}/{id?}", 
       defaults: new { controller = "Home", action = "Index" } 
      ); 
      r.MapSpaFallbackRoute(
       name: "spa-fallback", 
       defaults: new { controller = "Home", action = "Index" } 
      ); 
     }); 

こうすることで、リフレッシュまたは手動URLの負荷に、私のindex.cshtmlがロードされ、その後、ルータと希望ルートを管理するでしょうAngular2コアをロードすることになります。

これは、404エラーを監視するよりも優れた方法です。

関連する問題