You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor Pages项目如何从wwwroot加载Wexbim文件解决404报错

问题原因

你遇到的404错误不是因为文件不存在,而是ASP.NET Core默认的静态文件中间件没有注册.wexbim扩展名的MIME类型,服务器会默认拒绝返回未注册扩展名的静态文件,因此抛出404错误。

解决步骤

1. 注册.wexbim格式的MIME类型

修改项目的Program.cs文件(.NET 6及以上版本),在静态文件中间件配置中添加对应扩展名的MIME映射:

var builder = WebApplication.CreateBuilder(args);

// 原有服务注册逻辑
builder.Services.AddRazorPages();

var app = builder.Build();

// 配置自定义MIME类型
var contentTypeProvider = new FileExtensionContentTypeProvider();
// 同时兼容大小写后缀
contentTypeProvider.Mappings[".wexbim"] = "application/octet-stream";
contentTypeProvider.Mappings[".wexBIM"] = "application/octet-stream";

// 替换默认静态文件配置
app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = contentTypeProvider
});

// 原有中间件配置逻辑
app.UseRouting();
app.MapRazorPages();
app.Run();

如果是.NET 5及以下版本,在Startup.cs的Configure方法中做相同配置即可。

2. 修正前端加载路径

Razor语法中的~路径符号仅在服务端渲染的内容中会被解析,前端JS代码中直接写~不会被识别,需要修改加载路径:

var viewer = new xViewer('viewer');
// 写法1:用Razor的Url.Content方法解析路径(推荐,适配不同部署路径)
viewer.load("@Url.Content("~/Uploads/SampleHouse.wexbim")");
// 写法2:直接写绝对路径,适用于站点部署在根域名的场景
// viewer.load("/Uploads/SampleHouse.wexbim");
viewer.start();

3. 验证配置

配置完成后启动项目,直接在浏览器地址栏输入http://你的站点地址/Uploads/SampleHouse.wexbim,如果能正常触发文件下载,说明静态文件配置生效,前端即可正常加载文件。

内容的提问来源于stack exchange,提问作者Ahmed Mostafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 20:45:06