我在我的项目中使用多语言的角度应用程序,如下所示:
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路由器之外,所以我在那儿无法处理。
答案 0 :(得分:0)
大量研究之后,我找到了正确的方法:
app.Use(async (context, next) =>
{
if (context.Request.Path.Value == "/")
{
// rewrite and continue processing
context.Request.Path = "/en/";
}
await next();
});