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

标签 three.js blazor static-files gltf

我正在尝试使用 three.js 将 .gltf 模型加载到我的 Blazor 应用程序中。 enter image description here 但是,服务器不提供此类文件。 enter image description here 我知道必须添加 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/

相关文章:

javascript - 取消分配 BufferGeometry?

用于 CAD/AutoCAD 文件的 Javascript/canvas 渲染器

dom - 简单的 Three.js 设置不显示任何内容

blazor - 如何声明 Blazor 组件<TData,TValue>?

c# - Blazor,如果加载则返回/停止渲染

blazor pwa 无法安装

three.js - 清理 ThreeJS 场景 - 泄漏?

Heroku 上带有 Gunicorn 服务器的 Django 项目不提供静态文件

javascript - 如何在页面 html 区域 APEX(Oracle Application Express)上使用共享组件静态文件或 CSS 文件

css - 部署到 Azure : Fixing the Mime Type sends an empty css file to the server