【问题标题】:404 Error with PhysiJS in AngularAngular 中的 PhysiJS 出现 404 错误
【发布时间】:2018-01-12 14:24:38
【问题描述】:

我正在尝试让 Physijs 与 Angular 一起运行。到目前为止,三个场景运行良好,但我没有得到任何物理效果。

我用 npm 安装了以下内容:

https://www.npmjs.com/package/physijs-browserify

我用于初始化 Physijs 的相应 Component.ts 部分如下所示:

declare function require(name: string);
declare var THREE: any;
const Physijs = require('physijs-browserify')(THREE);
Physijs.scripts.worker = '/libs/physi-worker.js';
Physijs.scripts.ammo = '/libs/ammo.js';

我总是在 Chrome 控制台中收到以下错误:

physi.js:393 GET http://localhost:4200/libs/physi-worker.js 404(未找到)

我也尝试了 node_modules 的完整路径,但都不起作用:

Physijs.scripts.worker = "../testproject/node_modules/physijs-browserify/libs/physi-worker.js"

第 393 行的 physi.js 文件如下所示:

this._worker = new Worker( Physijs.scripts.worker || 'physi-worker.js' );

我什至尝试在 .angular-cli.json 中添加脚本,但也没有任何效果:

"scripts": [
        "../node_modules/physijs-browserify/libs/physi-worker.js"
]

我在声明 physi-worker.js 的路径时做错了吗?或者可能还有其他问题?我是 Angular 和 JavaScript 的新手,所以这可能是一个明显的问题。

非常感谢您的帮助。

问候

【问题讨论】:

    标签: angular physijs


    【解决方案1】:

    如果文件未在 .angular-cli.json 中定义为资产或位于资产文件夹中,则这些文件不可用。

    所以你有两种可能:

    1. 将文件放入 assets 文件夹,然后您的代码应如下所示:

      Physijs.scripts.worker = 'assets/physi-worker.js';
      Physijs.scripts.ammo = 'assets/ammo.js';
      
    2. 将托管文件的文件夹添加到 cli 中的资产配置中:

      "assets": [
      "assets",
      "favicon.ico"
      "./node_modules/physijs-browserify/libs"
      ],
      

    我更喜欢第一个选项。

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 2019-08-06
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 2022-06-29
      • 2018-01-19
      相关资源
      最近更新 更多