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

大方向的确定

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

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

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

域名的购买和配置

幸运的是,去年我闲着无聊租了一台阿里云的服务器,正好用上。那么,我们还需要什么呢?需要一个域名。
来到阿里云控制台购买,这里我购买的是最便宜的.top域名,一年只要6块哈哈。然后配置一下域名,点击解析:


这里域名的创建有一些注意点:

  1. 一定要进行实名认证,并且阿里云发短信通知你认证成功了
  2. 等待一段时间,DNS服务器不是马上就好的,需要等待,直到出现下图并且你刷新网页也不会变化就是真的可以了

    接下来我直接在Creator填入网址进行了构建,因为我不需要搭建网站,只是存储数据而已,注意一定要勾选MD5 Cache,appid填写你的微信小程序的,远程服务器要用https(发布的项目中game.js的remoteDownloader.REMOTE_SERVER_ROOT会直接变成你配置的远程服务器域名,但是在下载资源时会自动补全/res):

然后我用WinSCP登陆云服务器,直接把构建好的res文件夹上传到了linux系统的根目录下,然后用微信小游戏打开项目,打开之后,一定要在项目设置里勾选“不校验合法域名、web-view (业务域名)、TLS版本以及HTTPS证书”:

接下来使用微信公众平台打开构建好的游戏,正常加载出了游戏界面,没有出错,这代表我们离成功又近了一步。接下来,用手机调试一下,失败,出现如下错误:

百度一下"net:102错误",我们知道此错误消息通常是防火墙阻止通信时获得的错误消息,还是域名的问题,经过一番查询,我们知道了域名必须经过备案才能够和云服务器关联,并直接访问。
经过一番复杂的信息填写后,提示必须在域名实名认证的2-3天后才能备案,等等吧。
成功在阿里云提交备案信息后,我们会收到阿里云备案客服电话095187/95187来核实我们的备案信息,我这边的问题是网站名必须是三位汉字,然后是注释中不能带有游戏。
经过漫长的等待(大概10-20天),我的网址终于通过备案了。通过的标识是阿里云会发提示的邮件到你的邮箱:

申请阿里云免费的ssl证书

那么现在的问题就是如何让我们的域名能够升级为https服务。因为微信小游戏只支持https服务。
百度了一下,想要让域名升级为https,就要申请ssl证书。前往阿里云控制台,ssl证书是有免费版的,但是阿里云藏得比较深,按照下图配置:

购买成功后进行申请,因为是免费的所以很快就通过了。

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

之后想办法将申请好的ssl证书配置到我们的服务器上,让我们的网站支持https。为了让流程更加省事,我选择了利用官方推荐的宝塔来安装。
链接在这里
博主之前做了很多错误的操作,因此到了这里就直接初始化了云服务器的磁盘,然后安装宝塔。
安装成功后,会有一个账号和一个密码,一定要记录下来。
接下来访问:域名:8888,来到宝塔的登陆页面,输入你的账密登陆,选择官方推荐的LNMP安装服务:

这里应该还需要配置一下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
如果能够正常访问,说明资源部署成功。

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

接下来去微信公众平台,在开发——开发设置——服务器域名,设置成你自己的。

最后的操作

重复之前测试的流程: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这个文件夹。

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

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

  1. vue项目dist编译文件部署到服务器:页面空白、F5刷新报错404、403报错、等等bug - 总结篇

    文章目录 问题一. vue编译打包dist文件之后部署到线上服务器 ,访问页面却是空白? 问题二.如果不是空白,页面F5之后就又变成空白? 以Nginx服务器为例,(如下图FTP所示) `404报错: ...

  2. dist文件部署到服务器,npm run build之后生成的dist如何扔到服务器运行(npm run build之后如何本地运行)...

    运行npm run build之后,会生成一个dist文件夹,里面的目录结构大概是这样的: 生成完的文件我们怎么来运行呢?直接在本地打开inde.html是无法运行的,打包的时候有提示: 构建文件应该 ...

  3. java resources目录 编码_关于Java项目读取resources资源文件路径

    在看此篇博客是建议清楚classpath代表的路径,getServletContext().getRealPath("/")的含义,idea中项目编译后的目录格式,resoures ...

  4. IntelliJ IDEA 中的Java Web项目的资源文件复制新增如何更新到部署包中?

    文章目录 resources目录下的文件复制新增 webapp目录的文件复制新增 IntelliJ IDEA 中的Java Web项目的资源文件如果复制新增,正常的重新部署.重启服务器.update ...

  5. 打包图片上传cdn_Media Buy之Landing Page的资源文件CDN部署方案

    前言 最早期的时候,我是跟随<40天>教程的方法,把资源文件(img/css/js)也放到CloudFront里面,第二个月CDN的费用扣了我60多刀,当时跑的Pop.切换到Push为主之 ...

  6. 在win10本地开发springboot项目能上传图片,并能通过URL直接从浏览器访问,但是部署到服务器上后能上传文件,但是通过浏览器无法访问图片

    在win10本地开发springboot项目能上传图片,并能通过URL直接从浏览器访问,但是部署到服务器上后能上传文件,但是通过浏览器无法访问图片 1.首先springboot项目在Window和Li ...

  7. Linux环境下Nginx部署静态资源文件。

    操作环境: 阿里云服务器: Centos7.4 已安装过nginx 准备好静态资源文件. 部署静态资源文件 我把自己的静态资源文件放在了/usr/local/nginx/html下. dv文件夹中为静 ...

  8. springboot打成jar包后linux服务器上无法读取resources资源文件里文件路径的问题

    1.起因 将支付验正证书信息放在项目的resources资源文件下在本地通过 this.getClass().getResource("/").getPath() 可以正常读取证书 ...

  9. Vue打包部署到服务器-找不到静态资源404错误

    Vue打包部署到服务器-找不到静态资源404错误 参考:https://blog.csdn.net/AnnaF/article/details/105709569 问题描述 在本地运行正常,但是使用n ...

最新文章

  1. YourEclipse—不只是Eclipse开发者社区
  2. java支持泛型_Java自学-泛型 支持泛型的类
  3. pb 窗口数据修改sql_大数据hadoop,数据中台选型你应该看到这些分布式数据库
  4. java 多线程异常_java多线程执行异常
  5. python 爬虫库 beautifulsoup4_Python爬虫之BeautifulSoup4
  6. IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题
  7. Linux扩展正则表达式
  8. 启动JavaFx程序界面乱码如何解决?
  9. c++ 23种设计模式_如何用一句话总结23种设计模式
  10. Wap Push Access Protocol(PAP)介绍-开放源码
  11. 关于 myeclipse 里面没有 add hibernate capabilities 问题解决方法
  12. too many files open
  13. 面经-hangzhou
  14. CHIP-SEQ 芯片分析时,对于来自重复实验的数据,怎样进行MACS peaks calling 分析?
  15. x10ti怎么禁用核显_笔电多显卡切换解决方案浅谈(ver2.2)
  16. matlab 色彩的范围,Matlab - 将2个颜色条设置为带有色彩图和良好范围的2个图例...
  17. CentOS7将home目录下中文目录改为英文目录
  18. 永久免费的域名注册有吗?免费的域名注册在哪个平台?
  19. 您的Mac已成功加入Wi-Di网络,但是无法访问互联网问题及解决方案
  20. RadioGroup 全部取消选中 和选中某个按钮

热门文章

  1. 苹果天气不显示_用了6年苹果手机!直到今天才发现,闹钟还能检测手机真假...
  2. 枣庄薛城区搭建“智慧社区”便民服务解民忧
  3. 数学建模笔记——最优值之我见(爬山算法,模拟退火
  4. 【项目实战】电商项目中的SPU与SKU傻傻分不清楚
  5. 【愚公系列】2023年06月 网络安全(交通银行杯)-被黑了,求密码
  6. android 内存泄漏排查之旅
  7. kubernetes应用
  8. 猿创征文|运维工具介绍
  9. Ubuntu18.04下px4+MAVROSM+QGC地面站安装教程及避坑指南
  10. 图解Java设计模式-开闭原则