如何在blazor webassembly应用程序中获取服务器url



我有一个。NET Web Api服务器和Blazor Webassembly客户端。

我的问题是,我不知道在哪里设置客户端的服务器基础url。如果我将它部署到一个docker容器中,我的猜测是,它应该来自一个环境变量。

我找到的唯一解决方案是通过:

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

至少在我的本地开发环境中,这显然总是将我路由到前端基本url。

那么,我需要在哪里设置后端url,或者如果env变量部署到docker容器,我如何读取它,以便在signalR或REST调用中使用它?

在Wasm中,您可以使用访问"主机环境">

if (builder.HostEnvironment.IsDevelopment())
{
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new 
Uri(builder.HostEnvironment.BaseAddress) });
}
if (builder.HostEnvironment.IsProduction())
{
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("SomeotherAddress") });
}
await builder.Build().RunAsync();

您需要设置env,例如:dotnet run --environment Production文档的

最新更新