Blazor无法加载资源,路径过长导致。
创始人
2024-12-22 02:00:20
0

一种解决方法是使用 Blazor WebAssembly 的代理,该代理可将资源路径转换为静态文件的相对路径。具体实现可以参考以下示例代码:

// Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews().AddNewtonsoftJson();

services.AddHttpClient("BlazorServerAPI", client =>
{
    client.BaseAddress = new Uri(Configuration["BlazorServerAPI"]);
});
services.AddSingleton();

}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStaticFiles();

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();

app.UseRouting();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
    endpoints.MapFallbackToFile("index.html");
});

app.UseBlazorFrameworkFiles();

app.Use(async (context, next) =>
{
    if (context.Request.Path.Value.StartsWith("/_blazor"))
    {
        var proxy = context.RequestServices.GetRequiredService();
        await proxy.HandleRequestAsync(context);
    }

    await next();
});

}

public class BlazorResourceProxy { private readonly HttpClient _httpClient;

public BlazorResourceProxy(IHttpClientFactory httpClientFactory)
{
    _httpClient = httpClientFactory.CreateClient("BlazorServerAPI");
}

public async Task HandleRequestAsync(HttpContext context)
{
    var path = context.Request.Path.Value.Substring("/_blazor".Length);
    var response = await _httpClient.GetAsync(path);

    if (!response.IsSuccessStatusCode)
    {
        context.Response.StatusCode = (int)response.StatusCode;
        return;
    }

    var contentType = response.Content.Headers.ContentType.ToString();
    context.Response.ContentType = contentType;

    var stream = await response.Content.ReadAsStreamAsync();
    await stream.CopyToAsync(context.Response.Body);
}

}

在类似于这样的示例中,BlazorResourceProxy 类处理静态资源的请求。然后,Use 方法将代理添加到管道中。

注意:在以上示例中,“BlazorServerAPI”应该替换为您 Blazor WebAssembly 应用程序的 API 地址。

相关内容

热门资讯

黑科技辅助!微扑克ai辅助神器... 黑科技辅助!微扑克ai辅助神器,(微扑克ai智能)原来真的有挂,攻略教程(方式)-哔哩哔哩是一款可以...
黑科技辅助!aapoker透明... 黑科技辅助!aapoker透明,(AAPoKer线上德州)原来真的有挂,规律教程(方式)-哔哩哔哩;...
黑科技辅助!we-poker有... 黑科技辅助!we-poker有挂,(WePoKe ai)原来真的有挂,安装教程(有挂工具)-哔哩哔哩...
黑科技辅助!Wepoke辅助器... 黑科技辅助!Wepoke辅助器,(WePoKe链接)原来真的有挂,详细教程(有挂辅助)-哔哩哔哩;W...
黑科技辅助!wepoke辅助插... 黑科技辅助!wepoke辅助插件安装,(Wepoke实测)原来真的有挂,解密教程(有挂方式)-哔哩哔...
黑科技辅助!WePoKe外挂,... 黑科技辅助!WePoKe外挂,(WePoKe辅助v3.0)原来真的有挂,透明教程(确实有挂)-哔哩哔...
黑科技辅助!aa扑克辅助,(A... 黑科技辅助!aa扑克辅助,(AAPoKer靠谱)原来真的有挂,玩家教程(方针)-哔哩哔哩;亲真的是有...
黑科技辅助!wepoke有插件... 黑科技辅助!wepoke有插件,(WePoKe稳赢)原来真的有挂,可靠教程(有挂解密)-哔哩哔哩;W...
黑科技辅助!wepoke辅助软... 黑科技辅助!wepoke辅助软件靠谱,(Wepoke代码)原来真的有挂,必赢方法(有挂讲解)-哔哩哔...
黑科技辅助!德扑ai工具,(德... 黑科技辅助!德扑ai工具,(德扑ai俱乐部)原来真的有挂,黑科技教程(存在)-哔哩哔哩;德扑ai俱乐...