如何在 Blazor 应用程序中加载 .gltf
How to load .gltf in a Blazor application
我正在尝试使用 three.js 将 .gltf 模型加载到我的 Blazor 应用程序中。
但是服务器不提供此类文件。
我知道必须添加 MIME 类型,但由于某些原因,无法使用 Blazor Web 应用程序完成此操作,因为 Startup.cs 中的 'app' 变量是 IComponentsApplicationBuilder
的一个实例。谁能帮我解决这个问题。
IIS 和 IIS Express 将不会提供具有未知扩展名的文件。在错误控制台中,您会看到 404 (Not Found)
,这意味着文件丢失,或者文件的 MIME 类型未注册。
我建议您尝试将 web.config
文件添加到应用程序的根目录,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".gltf" />
<mimeMap fileExtension=".gltf" mimeType="model/gltf+json" />
<remove fileExtension=".glb" />
<mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
<remove fileExtension=".bin" />
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
<remove ... />
语句用于避免与发生在父文件夹或根级别或系统级别的任何 MIME 类型注册发生任何可能的冲突。 remove
总是安全的,但是添加一个已经存在的是配置错误。
这里是对 glTF Mime Type 定义位置的引用。
某些版本的 IIS Express 将忽略 web.config
中的 MIME 类型。如果发生这种情况,上述文件可能无法工作。在这种情况下,您可能必须直接编辑 IIS Express 配置文件,以添加上面显示的信息。检查 this SO answer 以了解如何找到该配置文件。
web.config
.
没必要乱来
您只需从 Program.cs
注入 StaticFileOptions
。
using Microsoft.AspNetCore.StaticFiles;
...
builder.Services.Configure<StaticFileOptions>(options =>
{
options.ContentTypeProvider = new FileExtensionContentTypeProvider
{
Mappings =
{
[".gltf"] = "model/gltf+json",
[".glb"] = "model/gltf-binary",
[".bin"] = "application/octet-stream"
}
};
});
带有替代选项的完整文档:
我正在尝试使用 three.js 将 .gltf 模型加载到我的 Blazor 应用程序中。
IComponentsApplicationBuilder
的一个实例。谁能帮我解决这个问题。
IIS 和 IIS Express 将不会提供具有未知扩展名的文件。在错误控制台中,您会看到 404 (Not Found)
,这意味着文件丢失,或者文件的 MIME 类型未注册。
我建议您尝试将 web.config
文件添加到应用程序的根目录,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".gltf" />
<mimeMap fileExtension=".gltf" mimeType="model/gltf+json" />
<remove fileExtension=".glb" />
<mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
<remove fileExtension=".bin" />
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
<remove ... />
语句用于避免与发生在父文件夹或根级别或系统级别的任何 MIME 类型注册发生任何可能的冲突。 remove
总是安全的,但是添加一个已经存在的是配置错误。
这里是对 glTF Mime Type 定义位置的引用。
某些版本的 IIS Express 将忽略 web.config
中的 MIME 类型。如果发生这种情况,上述文件可能无法工作。在这种情况下,您可能必须直接编辑 IIS Express 配置文件,以添加上面显示的信息。检查 this SO answer 以了解如何找到该配置文件。
web.config
.
您只需从 Program.cs
注入 StaticFileOptions
。
using Microsoft.AspNetCore.StaticFiles;
...
builder.Services.Configure<StaticFileOptions>(options =>
{
options.ContentTypeProvider = new FileExtensionContentTypeProvider
{
Mappings =
{
[".gltf"] = "model/gltf+json",
[".glb"] = "model/gltf-binary",
[".bin"] = "application/octet-stream"
}
};
});
带有替代选项的完整文档: