背景
数字孪生带火了3D版的Web世界,3D模型格式也是众多,常见的glb适合web传输,fbx,gltf,obj,unity等常用于模型编辑和处理。我们在用netcore或者wasm加载这些3D模型文件时,一般都需要手工增加Mime类型。IIS上好办,UI可视化增加就行,Kestrel的话,就得修改代码了,目前没有找到其它方便的配置方法。
配置
- 第一个要配置的肯定是Nginx,打开mime.types编辑,增加:
model/gltf+json json gltf;
model/gltf+binary bin glb;
application/fbx fbx;
- 第二个配置,修改工程代码,增加:
//app.UseStaticFiles(); //默认使用wwwroot目录
//注册自定义的3D模型常用 Mime类型
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".data"] = "application/octet-stream";
provider.Mappings[".wasm"] = "application/wasm";
provider.Mappings[".unity3d"] = "application/octet-stream";
provider.Mappings[".unityweb"] = "application/binary";
provider.Mappings[".gltf"] = "model/gltf+json";
provider.Mappings[".glb"] = "model/gltf+binary";
provider.Mappings[".fbx"] = "application/fbx";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider,
});
常见3D模型Mime配置:
重启服务
- 重启或者加载nginx配置;
- 重启网站或者服务;
修订
在 Nginx 中配置常见的 3D 模型格式的 MIME 类型可以帮助确保这些文件在客户端(如浏览器)中被正确识别和处理。以下是一些常见的 3D 模型文件格式及其对应的 MIME 类型,你可以将它们添加到 Nginx 的配置中:
-
打开 Nginx 的 MIME 类型文件:
- 通常在
/etc/nginx/mime.types
,如果路径不同,请根据你的系统找到正确的文件。
- 通常在
-
编辑 MIME 类型文件:
- 使用文本编辑器打开文件:
sudo nano /etc/nginx/mime.types
- 使用文本编辑器打开文件:
-
添加常见的 3D 模型格式及其 MIME 类型:
-
在
types {}
块中添加以下行:types { application/fbx fbx; model/gltf-binary glb; model/gltf+json gltf; model/obj obj; application/octet-stream stl; model/vnd.collada+xml dae; model/vrml wrl vrml; model/x3d+xml x3d; model/x3d+binary x3db; model/x3d+vrml x3dv; application/x-blender blend; }
-
-
保存并退出编辑器:
- 在
nano
中,按Ctrl + O
保存,然后按Ctrl + X
退出。
- 在
-
测试 Nginx 配置:
- 测试配置以确保没有语法错误:
sudo nginx -t
- 测试配置以确保没有语法错误:
-
重新加载 Nginx:
- 应用更改需要重新加载 Nginx:
sudo systemctl reload nginx
- 或者使用:
sudo nginx -s reload
- 应用更改需要重新加载 Nginx:
MIME 类型说明:
- FBX:
application/fbx
,用于 Autodesk FBX 格式。 - GLB/GLTF:
model/gltf-binary
和model/gltf+json
,分别用于二进制和 JSON 格式的 glTF 文件。 - OBJ:
model/obj
,用于 Wavefront OBJ 格式。 - STL:
application/octet-stream
,用于立体光刻文件格式。 - DAE:
model/vnd.collada+xml
,用于 COLLADA 格式。 - VRML:
model/vrml
,用于 VRML 格式。 - X3D:
model/x3d+xml
,model/x3d+binary
,model/x3d+vrml
,用于 X3D 格式。 - BLEND:
application/x-blender
,用于 Blender 文件格式。
通过这些配置,Nginx 将能够为这些 3D 模型文件提供正确的 MIME 类型,确保客户端能够正确识别和处理这些文件。