Phaser游戏加载图片不显示的CORS报错问题求助
报错核心原因
报错中资源请求的协议为file://,对应直接打开本地HTML文件运行项目的场景,此时页面源为null。Phaser加载本地图片资源时会通过XMLHttpRequest发起资源请求,浏览器仅允许http、https等特定协议发起跨源请求,file协议下的这类请求会被直接拦截,该问题与图片路径配置、服务端CORS规则无直接关联。
对应解决操作
- 放弃直接双击本地HTML文件启动项目的方式,通过本地静态HTTP服务托管项目根目录后访问页面。
- 启动本地静态服务时,将服务运行根目录设置为项目所在文件夹,通过
http://localhost:对应端口的地址打开游戏页面,此时页面协议为浏览器支持的http类型,不会触发上述拦截规则。 - 校验资源路径有效性:确认
preload()中配置的../assets/kanvas.png相对路径,相对于当前JS文件的层级可以准确指向实际存在的图片文件,避免路径层级错配导致的资源加载失败。
内容的提问来源于stack exchange,提问作者Hafid Suhanizar
相关产品推荐
相关产品推荐

