diff --git a/src/components/gltf-model-plus.js b/src/components/gltf-model-plus.js index bc0457d6559631f241714439dd1de8cd345d014f..4ca78bb33c89f0b62f36307ff1e7d9807560ecb2 100644 --- a/src/components/gltf-model-plus.js +++ b/src/components/gltf-model-plus.js @@ -221,9 +221,13 @@ async function resolveGLTFUri(gltfProperty, basePath) { } async function loadGLTF(src, token, contentType, preferredTechnique, onProgress) { - const basePath = THREE.LoaderUtils.extractUrlBase(src); + const resolved = await resolveMedia(src, token); + const raw = resolved.raw; + const origin = resolved.origin; + contentType = contentType || resolved.contentType; + const basePath = THREE.LoaderUtils.extractUrlBase(origin); - let gltfUrl = src; + let gltfUrl = raw; let fileMap; if (contentType.includes("model/gltf+zip") || contentType.includes("application/x-zip-compressed")) { diff --git a/src/components/media-loader.js b/src/components/media-loader.js index 81303a07d67946e187ea7664252dab3af20846b3..abe00eb02002ec28fa4872ad741f6a25c9dcfb57 100644 --- a/src/components/media-loader.js +++ b/src/components/media-loader.js @@ -65,7 +65,7 @@ AFRAME.registerComponent("media-loader", { if (!url) return; - const { raw, origin, contentType } = await resolveMedia(url, token); + const { raw, contentType } = await resolveMedia(url, token); if (token) { if (this.blobURL) { @@ -106,7 +106,7 @@ AFRAME.registerComponent("media-loader", { { once: true } ); this.el.addEventListener("model-error", this.onError, { once: true }); - const src = this.blobURL || origin || url; + const src = this.blobURL || url; this.el.setAttribute("gltf-model-plus", { src, contentType,