Angular 是否等同于 C# 的"UsePathBase"



我们在AWS ALB后面有一个angular应用程序。当请求被发送到某个路由example.com/balancer-route/...时,负载均衡器会将流量定向到angular应用。但这意味着请求会在URI中带着额外的balancer-route到达angular应用。我们需要忽略这些,以便正确地提供文件。

c#中是否有等价的app.UseBasePath?在c#中,这将基本忽略请求的/balancer-route部分,并正常地为端点提供服务。当基本路径不存在时,它也会继续处理请求。

我们知道这个问题可以通过NGINX解决,但是我们更喜欢基于应用程序的解决方案,在运行时将路径传递给应用程序。

使用重定向Angular路由的功能,你可以得到你想要的。以以下路由为例:

const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'quotes', component: QuoteListComponent },
{ path: 'quote/:id', component: QuoteComponent }
];

你可以浏览http://some.com/,http://some.com/quoteshttp://some.com/quote/1

和,您希望将流量从http://some.com/balancer-route,http://some.com/balancer-route/quoteshttp://some.com/balancer-route/quote/1分别重定向到第一个路由示例。

因此,我们将把所有的路由分组到一个带有子路由的对象中,并添加另一个重定向到分组所有路由的相同对象的路由

const routes: Routes = [
{
path: '', children: [
{ path: '', component: HomeComponent },
{ path: 'quotes', component: QuoteListComponent },
{ path: 'quote/:id', component: QuoteComponent }
]
}, {
path: 'balancer-route', redirectTo: ''
}
];

相关内容

  • 没有找到相关文章

最新更新