2.0发布微信小游戏,资源超过8M删除将raw-asserts移到CDN不能加载

2.0.4 ,放到cdn 同样问题,… + 1

1赞

改一下源码,发现他是下载失败了,然后没有重新下载,把那里修改为重新下载即可;
wx-downloader.js
的 downloadRemoteFile 的 fail 回调
修改为
fail: function (res) {
cc.error("download fail, try download again most probably will also fail ")
downloadRemoteFile(item, callback)
// before
// // Continue to try download with downloader, most probably will also fail
// callback({
// status: 0,
// errorMessage: res && res.errMsg ? res.errMsg : "Download file failed: " + remoteUrl
// }, null);
}

强制重新下载,请确保你的服务器上肯定有该资源,否则此处会一直失败

ps:修改之后 放到 工程/build-templates/wechatgame/libs/ 下 这样就不用每次编译都去修改啦

3赞

改一下源码,发现他是下载失败了,然后没有重新下载,把那里修改为重新下载即可;
wx-downloader.js
的 downloadRemoteFile 的 fail 回调
修改为
fail: function (res) {
cc.error("download fail, try download again most probably will also fail ")
downloadRemoteFile(item, callback)
// before
// // Continue to try download with downloader, most probably will also fail
// callback({
// status: 0,
// errorMessage: res && res.errMsg ? res.errMsg : "Download file failed: " + remoteUrl
// }, null);
}

强制重新下载,请确保你的服务器上肯定有该资源,否则此处会一直失败

ps:修改之后 放到 工程/build-templates/wechatgame/libs/ 下 这样就不用每次编译都去修改啦

2赞

@jare 同样的静态资源,放在apache下载没问题,放在七牛云cdn就下载不了

非常之感谢

我们的项目也是, 放到 cdn 上,用4G网络访问就会加载不出某些音频文件,发工单咨询阿里云后,他们的工程师说是因为 运行商劫持

1赞

ccc2.0.5的版本会出现这种问题,用1.9.2不会,现在有什么解决途径么

mark

提供测试demo,帮你看看什么原因,正常测试下不会发生这样的问题。

找到问题了!!!
在1.9.2:
把资源移到腾讯云后,删除build后的res资源,运行ok
在2.0.5
把资源移到腾讯云后,只删除build后res下raw-assets资源就不会出现上面问题

1赞

特地回来感谢你~此方法好用!

哈哈,确认过眼神,都是被坑过的人。

mark下,防止被坑

感谢感谢~

cdn没过滤json文件吗?

楼上老哥正解

为毛我的可以 v2.09

老哥,我想问一下,这样改会不会出现别的异常问题?为什么官方不这样操作一下?

mark一下

这个在哪里找呀?
我只找到一个downloadRemoteFile的函数定义:
function downloadRemoteFile (item, callback) {
// Download from remote server
var relatUrl = item.url;

// filter protocol url (E.g: https:// or http:// or ftp://)
if (REGEX.test(relatUrl)) {
    callback(null, null);
    return;
}

var remoteUrl = wxDownloader.REMOTE_SERVER_ROOT + '/' + relatUrl;
item.url = remoteUrl;
var cachePath = wxDownloader.getCacheName(relatUrl);
if (cc.sys.os === cc.sys.OS_ANDROID && item.type && getFileType(item.type) === FileType.IMAGE) {
    if (wxDownloader.cacheAsset) {
        cacheFile(remoteUrl, false, cachePath);
        registerFailHandler(item, cachePath);
    }
    callback(null, null);
}
else {
    wxFsUtils.downloadFile(remoteUrl, undefined, function (err, path) {
        if (err) {
            callback(err, null);
            return;
        }
        item.url = path;
        if (wxDownloader.cacheAsset) {
            cacheFile(path, true, cachePath);
            registerFailHandler(item, cachePath);
        }
        handleItem(item, callback);
    });
}

}

您说的那段代码要加在哪里呀?