问题:
Uncaught ReferenceError: THREE is not defined
原因:
服务器访问范围有限。
webStrom 在运行html的时候虽然会打开其自带的服务器功能,并且以此来运行。
但是html文件的访问权限只能限制在以服务器:localhost:63342为根目录的文件。对于localhost:63342所在目录的上层目录的文件是更不没办法访问的。
而上图二种的 导入JavaScript的时候,是localhost:63342的上一层目录下的3rd文件夹,所以根本没办法加载。进而报了上面的那个错误。
验证: 也是无意中尝试该验证方法的时候,才发现原因的。
httpd.cmd 打开服务器,结果运行1.html后可以正常使用。把httpd.cmd放到pathfinding_demo文件夹内后,就会出现上面的问题。
其他可以导致这个问题的原因:
javascript函数报Uncaught ReferenceError: XXX is not defined
为什么会报错误函数未定义呢?可以有以下集中原因:
1)JS函数未定义。(这种低级的相信大家都不会犯,但是不排除定义的函数和声明的函数名称不一致的情况,或 者传入参数不一致)
2)将Javascript函数放在了body和head之外了。(LZ就是曾犯过此类错误)
3)Javascript函数定义在对象声明之前。你的代码是直接就能运行的话,要是代码所操作的对象在代码后面,有的 浏览器会返回错误.因为它们是按顺序加载对象。