ASP.NET Core 2.xでは、Configure
拡張を使用するSPAアプリケーションに対して、標準ルートレジステーションStartup
クラスのMapSpaFallbackRoute
クラスをregister fallback routeに使用しましたMicrosoft.AspNetCore.SpaServices.Extensions
Nugetパッケージのメソッド:
public void Configure(IApplicationBuilder app)
{
// ...
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
}
エンドポイントの登録にASP.NET Core 3.0推奨のUseEndpoints
拡張メソッドを使用すると、同様の拡張メソッドが見つかりません。
ASP.NET Core 3.0拡張メソッドでは、MapFallbackToController
はMapSpaFallbackRoute
拡張メソッドと同じ機能を備えています。
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapFallbackToController("Index", "Home");
});
}
この決定は私を助けました!
public void Configure(IApplicationBuilder application)
{
application
// other extensions...
.UseEndpoints(endpoints => endpoints.MapDefaultControllerRoute())
.UseSpa(_ => { }); // extension from 'Microsoft.AspNetCore.SpaServices.Extensions' Assembly
}