我有一个。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
文档的