问题:使用three时,将资源放在public中,在开发环境没问题,但在生产环境报错,加载不出来静态资源
1. 控制台报错
SyntaxError: Unexpected token ‘<’, "<!DOCTYPE "… is not valid JSON
2. nextwork标签的响应是
We’re sorry but visitor_h5 doesn’t work properly without JavaScript enabled. Please enable it to continue.
原因:引入静态资源的路径不对
// sky.png: public > images > sky.png
// 添加天空背景图
const textureLoader = new THREE.TextureLoader()
const texture = textureLoader.load(this.load_url + '/images/sky.png')
我使用的qiankun框架,所以使用了
this.load_url = process.env.NODE_ENV === 'development' ? 'http://192.****' : ''
解决
解决办法:除了开发环境,其他环境使用qiankun自带的__INJECTED_PUBLIC_PATH_BY_QIANKUN__
this.load_url =
process.env.NODE_ENV === 'development'
? 'http://192.***:****'
: window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__ || ''
// public > images > sky.png
const textureLoader = new THREE.TextureLoader()
const texture = textureLoader.load(this.load_url + '/images/sky.png')
// 如果主应用有反向代理或nginx配置,确保子应用的静态资源路径能被正确转发到子应用