3

当我的网络工作者执行 importScripts 时,它会在 chrome 中引发 RangeError;但是,这仅在 ec2 实例的生产环境中可见。在本地运行应用程序或将其部署到 Heroku 时,webworker 可以毫无问题地调用 importScripts。此外,该应用程序的 ec2 部署版本在 Safari 中运行良好。

生产 EC2 - Chrome - 不工作
生产 EC2 - Safari - 工作
生产 Heroku - Chrome - 工作
生产 Safari - Chrome - 工作
本地开发 - Chrome - 工作
本地开发 - Safari - 工作

我试图以更大的堆栈大小启动 chrome,但这并没有解决问题。这让我相信应用程序服务资产的方式有问题,但这只是一个假设。

有关该问题的更多详细信息:

该应用程序功能失调的部分是运行 PhysiJS 物理插件的 ThreeJS 模型。Physijs 工作者在 ammo.js 的路径上调用 importScripts,其中包含用于计算速度、碰撞等的所有函数。

该应用程序基于带有 Nginx 和 Puma 的 Rails 构建,并在一个小型 ec2 实例上运行。physijs worker 和 ammo 文件是预编译的。

如果实例正在运行,它在 52.27.230.200 可用。

铬日志:

Uncaught ReferenceError: 场景未定义
THREE.WebGLRenderer 71
unhandled obj_info Array[3]
unhandled obj_info Array[3]
THREE.Geometry
THREE.Geometry
unhandled obj_info Array[3]
unhandled obj_info Array[3]
Uncaught Error: Uncaught RangeError: Maximum call stack大小超出
未捕获类型错误:无法读取未定义的属性“setX”未捕获类型错误:无法读取未定义未捕获
类型错误的属性“setIdentity”
:无法读取未定义未捕获类型错误的属性“setX”:无法读取未定义
未捕获类型错误的属性“setIdentity”:无法
读取读取未定义的属性“setX”
未捕获类型错误:无法读取未定义的属性“setIdentity”未
捕获类型错误:无法读取未定义的属性“setX”未
捕获类型错误:无法读取未定义的属性“setIdentity”未捕获类型错误:无法读取未定义的属性“setX”未捕获类型错误:无法读取属性未定义的“setIdentity”

4

0 回答 0