由于代码包的限制4MB。我们在项目有50MB的时候,需要将部分资源放到远程服务器下载。
我们要做的事情有:
1. 将大部分资源放到远程服务器(支持https,wss) 。
2. 上传微信平台时,只上传小于4MB的必要代码和资源。
3. 在游戏运行时,从远程服务器加载资源。
参考论坛水友的帖子:微信小游戏包内资源、包外资源分开加载
一、代码包大小限制
由于代码包大小只有4MB。假如游戏有50MB,只能上传4MB以内主项目的代码和小部分资源,将多余资源放在自己服务器上远程加载。
二、游戏资源分组(没有https服务器,所以没有实践成功。)
(补充:后来发现可以勾选不校验域名)
我们在assets中放入多张图片,让项目超过4MB。
这时,代码包的大小超过4MB限制,不让上传了。
将大部分图片资源放在远程服务器上,我这里服务器是阿里云的,IP是120.24.188.118。
在代码里加载外部服务器资源配置文件。game.res.json是新建的资源配置文件,主要放远程资源,原来的default.res.json放直接上传到微信平台的资源。
结果报错。不合法。因为不支持IP,所以IP换成域名,同样也不合法。
到微信公众平台去配置服务器,在平台上找到设置->开发设置->服务器域名
如果不设置服务器域名,则需要勾选微信开发者工具-详情-不校验合法域名...
这样方能测试..
//代码开始开启纹理跨域,没有这句webgl纹理跨域
egret.ImageLoader.crossOrigin = "anonymous";
问题:
1. 主项目assets中的图片资源,在微信开发者工具中assets里却没有。
主项目中有rank_bg.png,直接在微信开发者工具中运行,能够获取并显示这张图片。
但是微信开发者工具文档栏中assets下并没有这张图片,导致上传后使用真机扫码访问测试时,不能获取显示这张图片。
重启微信开发者工具,就有了,然后上传,才能在真机扫码测试时获取和显示这张图片