html - 当我将自己的 3D 模型添加到用于场景查看器的 html 中的标签,模型不加载
问题描述
我正在尝试将我自己的 3D GLB 模型添加到谷歌场景查看器通用代码中。但是,当我用下载的 GLB 模型替换椅子模型的链接时,该模型不会显示在网页上。
我使用了我自己下载的模型。我还尝试通过下载使用通用代码中的同一把椅子。我看着检查器,虽然占位符存在,但似乎空间是空的,替代文本也不显示
这是我正在使用的代码:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>3DModel</title>
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.js"></script>
<script nomodule src="https://unpkg.com/@google/model-viewer/dist/model-viewer-legacy.js"></script>
</head>
<body>
<model-viewer src="chair.glb" auto-rotate camera-controls alt="cube" background-color="#455A64"></model-viewer>
</body>
</html>
我所做的只是将 src 从到 chair.glb 的链接到下载模型的位置(与索引代码位于同一文件夹中)
我怎样才能解决这个问题?
解决方案
如果您查看控制台,您可能会发现如下错误:
model-viewer.js:36006 从源“null”访问“file:///chair.glb”处的 XMLHttpRequest 已被 CORS 策略阻止:跨源请求仅支持协议方案:http、data、chrome、chrome -扩展,https。
这意味着浏览器锁定对 chair.glb 文件的访问,因为它是通过 file:/// 协议提供的。
为了解决这个问题,您可以将 html 和 .glb 文件上传到在线“真实”网络服务器,或者您在计算机上运行一个简单的网络服务器并在那里预览文件。
为了快速获得结果,我推荐Mongoose Webserver
在https://cesanta.com/binary.html为您的平台获取二进制文件,然后在您的 html 和 glb 文件所在的文件夹中启动它。这将打开一个浏览器窗口,您可以在其中选择要打开的 html 文件。
推荐阅读
- php - (1/1) FatalErrorException 无法声明比特币类,因为该名称已在 easybitcoin.php 第 4 行中使用
- cron - 如何在终端中使用 Crontab 运行 .py 文件?
- firebase - 将应用程序链接到 Firebase Crashlytics 时的依赖问题 - maven/android/flutter
- swiftui - 获取父大小 SwiftUI
- java - 使用 Log4J2 进行延迟日志记录中的“Lambda 可以替换为方法参考”
- c# - 玩家旋转时子弹实例化角度错误
- android - ZipFile Kotlin 类返回 java.io.FileNotFoundException: 文件不存在
- spotify - 使用 C++ 流音乐将 Spotify API 与桌面应用程序集成并获取元数据
- angular - 如何处理使用 *ngFor 显示的多个列表项中的切换
- jsf - 无法在 JSF 中将输入转换为时间戳