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

FontLoader在Vue.js中无法正常工作问题求助

Vue项目中Three.js TextGeometry字体加载错误的解决办法
  • 确保字体异步加载完成
    TextGeometry必须在字体文件完全加载后才能创建,FontLoader是异步加载的,不要尝试同步使用字体对象。正确用法:
import * as THREE from 'three'

const fontLoader = new THREE.FontLoader()
fontLoader.load('/fonts/helvetiker_regular.typeface.json', (loadedFont) => {
  const textGeo = new THREE.TextGeometry('你的文本', {
    font: loadedFont,
    size: 16,
    height: 2
  })
  // 这里继续添加材质、挂载到场景等操作
})
  • 修正Vue静态资源引用路径
    如果字体放在项目public目录下,路径必须以/开头;如果放在src/assets,需要通过require或import让webpack正确解析:
// assets目录下的字体引用方式
fontLoader.load(require('@/assets/fonts/helvetiker_regular.typeface.json'), (font) => {
  // 创建几何体
})
  • 验证字体文件有效性
    确认你的JSON字体是Three.js兼容的typeface格式,文件无损坏。可以用官方字体生成工具重新生成字体,避免格式不匹配。

  • 处理跨域与开发环境配置
    如果字体存放在外部CDN,开发环境需要在vue.config.js配置代理:

module.exports = {
  devServer: {
    proxy: {
      '/fonts': {
        target: 'https://your-cdn-domain.com',
        changeOrigin: true
      }
    }
  }
}
  • 检查Three.js版本适配
    新版本Three.js中,FontLoader和TextGeometry需要从addons导入:
import { FontLoader } from 'three/addons/loaders/FontLoader.js'
import { TextGeometry } from 'three/addons/geometries/TextGeometry.js'

内容的提问来源于stack exchange,提问作者amin bahaddi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:36:28