从示例 WebAssembly 模板中获取代码并将其应用到服务器应用程序时,我尝试读取位于 wwwroot 目录中的 json 文件:
{
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
}
这样做时,我收到“提供了无效的请求 URI”,因此将其更改为使用 http://localhost 地址是可行的,但我试图理解为什么我不能简单地提供如上所示的相对路径.
我在我这边重现了你的问题。
异常显示我们有一个无效的网址,并且相关部分必须正确,所以我尝试检查基本网址。正如您所看到的,在 Web Assembly 项目中,它是
localhost
url。
但是在 blazor 服务器应用程序中,我们无法获取基本 url。是
null
。
所以我在 Program.cs 中添加
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7058/") });
,就像 wsam 项目所做的那样。