如何在 Blazor 应用程序中加载 .gltf

Saa*_*ram 2 static-files three.js gltf blazor

我正在尝试使用 Three.js 将 .gltf 模型加载到我的 Blazor 应用程序中。 在此处输入图片说明 但是,服务器不提供此类文件。 在此处输入图片说明 我知道必须添加 MIME 类型,但由于某些原因,无法使用 Blazor Web 应用程序完成此操作,因为 Startup.cs 中的“app”变量是IComponentsApplicationBuilder. 任何人都可以帮助我解决这个问题。

ema*_*key 7

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>
Run Code Online (Sandbox Code Playgroud)

这些<remove ... />语句是为了避免与发生在父文件夹或根级别或系统级别的任何 MIME 类型注册发生任何可能的冲突。总是安全的remove,但添加一个已经存在的配置错误。

这是对glTF Mime 类型定义位置的参考。

某些版本的 IIS Express 将忽略来自web.config. 如果发生这种情况,上述文件可能不起作用。在这种情况下,您可能需要直接编辑 IIS Express 配置文件,以添加上面显示的信息。检查此 SO 答案以了解如何找到该配置文件。