C# Asp.net core 3.1将空路由重定向到默认语言路由
我在我的项目中使用多语言angular应用程序,如下所示:C# Asp.net core 3.1将空路由重定向到默认语言路由,c#,angular,asp.net-core,single-page-application,.net-core-3.1,C#,Angular,Asp.net Core,Single Page Application,.net Core 3.1,我在我的项目中使用多语言angular应用程序,如下所示: app.Map("/en", en => { en.UseSpa(spa => { if (env.IsDevelopment()) { spa.UseProxyToSpaDevelopmentServer(LocalSpaServerUrl); } else {
app.Map("/en", en =>
{
en.UseSpa(spa =>
{
if (env.IsDevelopment())
{
spa.UseProxyToSpaDevelopmentServer(LocalSpaServerUrl);
}
else
{
spa.Options.SourcePath = "ClientApp";
spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "ClientApp/dist/ClientApp/en")),
};
}
});
});
app.Map("/bg", bg =>
{
bg.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "ClientApp/dist/ClientApp/bg")),
};
});
});
我希望默认路由是/en路由:当用户尝试访问“/”时,我希望它重定向到“/en”。
请记住,这是Angular的路由器外部,因此我无法在那里处理此问题。经过大量挖掘,我找到了正确的方法:
app.Use(async (context, next) =>
{
if (context.Request.Path.Value == "/")
{
// rewrite and continue processing
context.Request.Path = "/en/";
}
await next();
});
使kode for“/en”可重用和app.Map(“/”)?我尝试过,但没有成功。似乎路径应该与服务目录匹配。