Three.js json 没有更改文件扩展名的加载程序错误

Three.js json loader error without changing file extension

我在 Blender 中创建了一个模型,然后使用 Three.js 官方导出器将其导出到 JSON。然后我尝试使用下一个代码加载它:

const loader = new THREE.JSONLoader();
loader.load('assets/models/bear.json', (geometry, materials) => {
  const bear = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
  scene.add(bear);
});

然后我得到错误:

(unknown) TypeError: url.split is not a function
  at Object.extractUrlBase (eval at <anonymous> (app.js:742), <anonymous>:32860:19)
  at JSONLoader.load (eval at <anonymous> (app.js:742), <anonymous>:33166:120)

这是我的 json 文件:https://github.com/elliepooh/VRcard/blob/master/src/assets/models/bear.json

我发现了一些决定,但它们都是关于将 .json 文件重命名为 .js 并改为加载它。由于我使用的是 webpack 和 eslint,由于某些原因它是有问题的...

我也尝试过这样使用 Clara.io JSON 加载程序代码:

const loader = new THREE.ObjectLoader();
loader.load('assets/models/bear.json', (obj) => {
  scene.add(obj);
});

然后我得到以下类型错误:url.lastIndexOf 不是一个函数

是否有任何方法可以将 json 加载到 three.js 而无需更改其文件扩展名并且不会出现此类错误?任何帮助将不胜感激...

问题出在导入 .json 文件中。相反,我应该用一个字符串加载它。 (正如描述中的那样,但我在我的代码中使用了@import)

现在看起来是这样的:

const loader = new THREE.JSONLoader();
loader.load('/static/bear.json', (geometry, materials) => {
  const bear = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
  scene.add(bear);
});

非常感谢 @TheJim01 的帮助!