WebAR项目(A-Frame+AR.js)加载NFT标记时出现Error in loading marker on worker 404错误求助
WebAR项目(A-Frame+AR.js)加载NFT标记时出现Error in loading marker on worker 404错误求助
嘿,我来帮你搞定这个404报错的问题!这个错误本质是AR.js的worker脚本找不到你的NFT标记资源,咱们一步步排查解决:
首先排查最常见的资源路径问题
- 你代码里指定的NFT路径是
./image/nfts/logos,AR.js加载NFT标记需要三个配套文件:.fset、.fset3、.ft,这三个文件必须全部放在logos目录下,而且文件名要和目录名完全匹配(比如目录叫logos,那三个文件就得是logos.fset、logos.fset3、logos.ft)。 - 去服务器上核对文件结构:确认
image/nfts/logos/这个目录确实存在,里面的三个标记文件也都上传完整,没有拼写错误或者漏传的情况。
检查服务器文件权限
很多时候服务器会限制静态资源的访问权限,导致worker脚本读不到这些标记文件。你需要确保image/nfts/logos/目录以及里面的文件权限设置正确(通常设置为755目录权限、644文件权限,具体可以根据你的服务器配置调整)。
确认AR.js脚本的引入是否正确
从你的代码片段看,NFT相关的AR.js脚本被注释掉了,这肯定会出问题!你得确保在<head>里正确引入支持NFT功能的AR.js脚本,建议用本地部署的版本(避免网络加载不稳定),比如:
<script src="aframe-ar-nft.js"></script>
同时也要记得引入A-Frame的核心脚本,不然整个场景都跑不起来。
本地测试先验证资源有效性
先在本地用简单的静态服务器(比如http-server)跑你的项目,如果本地能正常加载标记,那问题肯定出在服务器端的路径或权限上;如果本地也报同样的错,那说明你的NFT标记生成有问题,得重新用AR.js的NFT生成工具重新导出正确的标记文件。
用浏览器控制台定位精准问题
打开浏览器开发者工具(按F12),切换到Network标签页,刷新页面后看哪个请求返回了404。比如如果是logos.fset返回404,那直接就能定位到是这个文件没上传或者路径写错了,比瞎猜高效多了。
给你调整了一下代码,补全了必要的脚本引入和场景配置,你可以参考:
<!DOCTYPE html> <html> <head> <title>WEBAR TEST</title> <!-- 引入A-Frame核心脚本 --> <script src="aframe.min.js"></script> <!-- 引入支持NFT的AR.js脚本(建议本地部署) --> <script src="aframe-ar-nft.js"></script> </head> <body> <a-scene embedded arjs="trackingMethod: best; detectionMode: mono_and_matrix; matrixCodeType: 3x3;"> <a-nft type="nft" url="./image/nfts/logos" smooth="true" smoothCount="10" smoothTolerance=".01" smoothThreshold="5"> <a-entity geometry="primitive: box; width: 100; height: 100; depth: 100" position="0 0.5 0" material="color: red" animation="property: rotation; to: 0 360 0; loop: true; repeat: indefinite; dur: 5000"> </a-entity> </a-nft> <a-entity camera></a-entity> </a-scene> </body> </html>
备注:内容来源于stack exchange,提问作者john mbugua
相关产品推荐
相关产品推荐

