我正在尝试使用 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看看如何找到那个配置文件。
关于three.js - 如何在 Blazor 应用程序中加载 .gltf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58867218/