CocosCreator实现将资源文件部署到服务器的艰难摸索

问题起源于我和一个同学用Cocos Creator做的微信小游戏,由于项目太大(40MB),无法在微信平台发布(4MB上限),怎么办呢?

大方向的确定

上网查询了一些资料,我大概了解到了解决方案有分包和服务器两种方式:

  1. 分包:将资源分成子包引用,但是上限为8MB;
  2. 服务器:将Cocos Creator项目导出后的res文件夹上传到服务器,用微信小游戏打开剩余文件,就会直接去引用服务器上对应的资源;而去掉res文件夹后项目一般小于4MB;

好了,大方向确定了。首先我找到了一篇教程,就是下面的链接,了解了一下这种方式基本的原理。手机很显然无法访问电脑本地的地址,因此,我们需要一个域名,关联到一台云服务器上。
链接在这里

域名的购买和配置

幸运的是,去年我闲着无聊租了一台阿里云的服务器,正好用上。那么,我们还需要什么呢?需要一个域名。
来到阿里云控制台购买,这里我购买的是最便宜的.top域名,一年只要6块哈哈。然后配置一下域名,点击解析:
在这里插入图片描述
CocosCreator实现将资源文件部署到服务器的艰难摸索_第1张图片
这里域名的创建有一些注意点:

  1. 一定要进行实名认证,并且阿里云发短信通知你认证成功了
  2. 等待一段时间,DNS服务器不是马上就好的,需要等待,直到出现下图并且你刷新网页也不会变化就是真的可以了
    CocosCreator实现将资源文件部署到服务器的艰难摸索_第2张图片
    接下来我直接在Creator填入网址进行了构建,因为我不需要搭建网站,只是存储数据而已,注意一定要勾选MD5 Cache,appid填写你的微信小程序的,远程服务器要用https(发布的项目中game.js的remoteDownloader.REMOTE_SERVER_ROOT会直接变成你配置的远程服务器域名,但是在下载资源时会自动补全/res):
    CocosCreator实现将资源文件部署到服务器的艰难摸索_第3张图片

然后我用WinSCP登陆云服务器,直接把构建好的res文件夹上传到了linux系统的根目录下,然后用微信小游戏打开项目,打开之后,一定要在项目设置里勾选“不校验合法域名、web-view (业务域名)、TLS版本以及HTTPS证书”:
CocosCreator实现将资源文件部署到服务器的艰难摸索_第4张图片
接下来使用微信公众平台打开构建好的游戏,正常加载出了游戏界面,没有出错,这代表我们离成功又近了一步。接下来,用手机调试一下,失败,出现如下错误:
CocosCreator实现将资源文件部署到服务器的艰难摸索_第5张图片
百度一下"net:102错误",我们知道此错误消息通常是防火墙阻止通信时获得的错误消息,还是域名的问题,经过一番查询,我们知道了域名必须经过备案才能够和云服务器关联,并直接访问。
经过一番复杂的信息填写后,提示必须在域名实名认证的2-3天后才能备案,等等吧。
成功在阿里云提交备案信息后,我们会收到阿里云备案客服电话095187/95187来核实我们的备案信息,我这边的问题是网站名必须是三位汉字,然后是注释中不能带有游戏。
经过漫长的等待(大概10-20天),我的网址终于通过备案了。通过的标识是阿里云会发提示的邮件到你的邮箱:
CocosCreator实现将资源文件部署到服务器的艰难摸索_第6张图片

申请阿里云免费的ssl证书

那么现在的问题就是如何让我们的域名能够升级为https服务。因为微信小游戏只支持https服务。
百度了一下,想要让域名升级为https,就要申请ssl证书。前往阿里云控制台,ssl证书是有免费版的,但是阿里云藏得比较深,按照下图配置:
CocosCreator实现将资源文件部署到服务器的艰难摸索_第7张图片
购买成功后进行申请,因为是免费的所以很快就通过了。

使用宝塔linux部署服务器,并将域名升级为https协议

之后想办法将申请好的ssl证书配置到我们的服务器上,让我们的网站支持https。为了让流程更加省事,我选择了利用官方推荐的宝塔来安装。
链接在这里
博主之前做了很多错误的操作,因此到了这里就直接初始化了云服务器的磁盘,然后安装宝塔。
安装成功后,会有一个账号和一个密码,一定要记录下来。
接下来访问:域名:8888,来到宝塔的登陆页面,输入你的账密登陆,选择官方推荐的LNMP安装服务:
CocosCreator实现将资源文件部署到服务器的艰难摸索_第8张图片
这里应该还需要配置一下mysql数据库的账密等等,记得一定要记录下来。剩余按照流程完成。
所有流程完成后,我们就可以用https://你的域名访问到一个宝塔安装成功的页面了。并且就算是使用http它也会自动变为https。

上传文件到宝塔

我们在宝塔的管理页面点击文件,找到/www/wwwroot/你的域名,可以发现index.html、404.html等一些文件。
我们可以直接访问“你的域名/index.html”,也可以直接访问“你的域名/404.html”,因此,这里就是我们要上传资源文件夹res的位置了。(后台服务器会帮你自动补全/www/wwwroot/你的域名)
因为宝塔不支持直接上传文件夹,所以我们可以使用winscp来完成这一操作。
接下来找到res文件夹里的某个文件,尝试直接进行访问,比如:
https://www.abccccc.top/res/raw-assets/00/0052cbe9-374f-4642-8c43-60744e8dadcf.90d17.mp3
如果能够正常访问,说明资源部署成功。

微信公众平台配置合法域名

接下来去微信公众平台,在开发——开发设置——服务器域名,设置成你自己的。
CocosCreator实现将资源文件部署到服务器的艰难摸索_第9张图片

最后的操作

重复之前测试的流程:Cocos Creator构建发布项目,然后将项目的res文件夹上传到/www/wwwroot/你的域名,删除项目中给的res文件夹,在微信开发者工具运行你的游戏,如果可以正常运行,再进行真机调试,如果也可以就成功了。
但是我在测试腾讯的mongdb项目时出现了以下的错误:
downloadFile:fail socket timeout
Failed to load scene: Error: [AssetLibrary] loading JSON or dependencies failed:{“res/raw-assets/ff/fff71603-d470-4254-a047-5df5a0abfce4/TencentSans-W7.ttf”:{}}
然而res文件夹根本没有fff71603-d470-4254-a047-5df5a0abfce4这个文件夹,而有fff71603-d470-4254-a047-5df5a0abfce4.88f4这个文件夹。

但是我换了一个常规的项目就成功了,博主也是个小白,不明白是什么原因,欢迎大神指出。

你可能感兴趣的:(Cocos,Creator,微信小程序,小程序)