我正在尝试读取驻留在剃须刀类库中的JSON文件。我已经将它添加到了www.root文件夹中,该文件夹用于库中的静态资产,类似于访问静态资产的指南(css,js文件)。
然后,我试图在blazor组件的OnInitializedAsync()事件中读取这个文件,如下所示:
protected async override Task OnInitializedAsync()
{
MenuItems = await Http.GetFromJsonAsync<List<MenuItem>>("_content/[LibraryName]/sitemap.json");
await base.OnInitializedAsync();
}
我也尝试过不使用_content部分:
protected async override Task OnInitializedAsync()
{
MenuItems = await Http.GetFromJsonAsync<List<MenuItem>>("sitemap.json");
await base.OnInitializedAsync();
}
这两个调用最后都有以下异常:
System.InvalidOperationException:提供了无效的请求URI。请求URI必须是绝对URI,或者必须设置BaseAddress。
基于blazor模板,它从应用程序中的wwwroot文件夹中读取天气预报JSON文件。我试图做同样的事情,但是使用类库之外的wwwroot文件夹。我似乎找不到如何实现这一目标的指导。任何帮助都是非常感谢的。
发布于 2021-09-22 17:16:21
主要错误是
请求URI必须是绝对URI或必须设置BaseAddress。
这是奇怪的,通常HttpClient是正确配置在程序或启动。
那么:您的Http
来自哪里?您在启动代码中更改了什么?你应该有这样的
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
https://stackoverflow.com/questions/69284619
复制相似问题