You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Three.js项目构建后GLB模型无法访问的问题求助

解决Vite构建后GLTF模型无法加载的问题

问题原因

开发环境下绝对路径/models/miku_pde.glb能正常指向public/models目录,但构建后如果部署在非域名根目录(比如子路径),绝对路径会直接指向域名根导致找不到文件;另外Vite的静态资源引用推荐使用import.meta.env.BASE_URL适配不同部署场景。

解决方案

1. 修改模型路径为动态拼接

将硬编码的绝对路径改为用Vite提供的环境变量拼接,确保开发和构建环境路径一致:

import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

let model;
const loader = new GLTFLoader();
// 使用import.meta.env.BASE_URL拼接路径
const modelPath = `${import.meta.env.BASE_URL}models/miku_pde.glb`;

loader.load(modelPath, (gltf) => {
  model = gltf.scene;
  model.position.y = -15;
  scene.add(model);
});

2. 配置Vite的base路径(部署在子路径时)

如果项目部署在域名的子路径下(比如https://example.com/my-project/),需要在vite.config.js中添加base配置:

export default {
  base: '/my-project/'
}

此时import.meta.env.BASE_URL会自动替换为/my-project/,确保模型路径正确指向资源位置。

3. 验证构建后的资源

执行npx vite build后,检查dist目录下是否存在models/miku_pde.glb文件。如果缺失,确认public目录结构是否为public/models/miku_pde.glb——Vite默认会将public下的所有资源原封不动复制到dist根目录。

内容的提问来源于stack exchange,提问作者Sean Lim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 03:37:42