【问题标题】:THREE.JS : GLTFLoader 404 Not Found problemTHREE.JS:GLTFLoader 404 Not Found 问题
【发布时间】:2022-01-09 15:32:08
【问题描述】:

我正在尝试使用 Three.js 在我的网页中添加 3D 模型,因此我使用了 GLTFLoader,但在获取模型时遇到了 404 错误,我觉得这很奇怪,因为这是模型的正确路径。这是我在控制台中遇到的错误:

错误:获取“http://127.0.0.1:5500/modele/voiture/scene.gltf”响应为 404:未找到

在我的 js 代码中,我创建了一个 loadModel() 函数,并将其添加到我的 init() 函数中。这是 loadModel() 函数:

function loadModel() {
    // ------------ loader d'image 3D -------------- //
    const loader = new THREE.GLTFLoader();

    //loader.setCrossOrigin('./');
    
    loader.load('modele/voiture/scene.gltf', function(gltf){ 
        var voiture = gltf.scene;
        voiture.scale.setScalar(5);
        scene.add(gltf.scene);
        voiture = gltf.scene.children[0];
        rendu.render(scene, camera);
    });
}

非常欢迎对我的代码提出任何建议:D 提前谢谢!

【问题讨论】:

    标签: javascript three.js 3d http-status-code-404 gltf


    【解决方案1】:

    尝试在网址前使用“/”。

    function loadModel() {
        // ------------ loader d'image 3D -------------- //
        const loader = new THREE.GLTFLoader();
    
        //loader.setCrossOrigin('./');
        
        loader.load('/modele/voiture/scene.gltf', function(gltf){ 
            var voiture = gltf.scene;
            voiture.scale.setScalar(5);
            scene.add(gltf.scene);
            voiture = gltf.scene.children[0];
            rendu.render(scene, camera);
        });
    }
    

    或使用完整链接:

    function loadModel() {
        // ------------ loader d'image 3D -------------- //
        const loader = new THREE.GLTFLoader();
    
        //loader.setCrossOrigin('./');
        
        loader.load("http://127.0.0.1:5500/modele/voiture/scene.gltf", function(gltf){ 
            var voiture = gltf.scene;
            voiture.scale.setScalar(5);
            scene.add(gltf.scene);
            voiture = gltf.scene.children[0];
            rendu.render(scene, camera);
        });
    }
    

    如果它不起作用,请尝试运行 curl "http://127.0.0.1:5500/modele/voiture/scene.gltf"在您的终端中。如果它没有得到任何东西,那么服务器或url有问题。

    【讨论】:

    • 感谢您的建议!当我在路径中添加“/”时,我没有得到任何不同的东西。当我在控制台中输入 'curl "127.0.0.1:5500/modele/voiture/scene.gltf" ' 时,我得到一个未捕获的语法错误:意外标记:字符串文字(当我输入引号时)和标识符(当我尝试不带引号时)。最后,当我在代码中输入整个 url 时出现跨域错误(将代码上传到网站时会出现问题吗?)
    • curl 将在 OS shell 中执行,如 cmd 或终端。无论如何,我认为是服务器由于某种原因没有发送文件。你在这里提供的代码是可以的。因此,也许您必须在服务器中执行“允许 CORS”。
    • 如果我在我的开发服务器上本地允许 CORS,在我将上传代码的网络服务器上仍然是这种情况吗?恐怕不会,而且模型上线时也不会加载模型......
    • 帮了我很多忙,谢谢!
    猜你喜欢
    • 2017-12-23
    • 2011-02-20
    • 1970-01-01
    • 2015-05-10
    • 2015-06-27
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多