Bootstrap

nginx和netcore加载常见的3D模型

背景

数字孪生带火了3D版的Web世界,3D模型格式也是众多,常见的glb适合web传输,fbx,gltf,obj,unity等常用于模型编辑和处理。我们在用netcore或者wasm加载这些3D模型文件时,一般都需要手工增加Mime类型。IIS上好办,UI可视化增加就行,Kestrel的话,就得修改代码了,目前没有找到其它方便的配置方法。

配置

  1. 第一个要配置的肯定是Nginx,打开mime.types编辑,增加:
	model/gltf+json                            json gltf;
    model/gltf+binary                          bin glb;
  1. 第二个配置,修改工程代码,增加:
            //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";

            app.UseStaticFiles(new StaticFileOptions()
            {
                ContentTypeProvider = provider,
            });

重启服务

  1. 重启或者加载nginx配置;
  2. 重启网站或者服务;
;