2.0.4 ,放到cdn 同样问题,… + 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/ 下 这样就不用每次编译都去修改啦
改一下源码,发现他是下载失败了,然后没有重新下载,把那里修改为重新下载即可;
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/ 下 这样就不用每次编译都去修改啦
非常之感谢
我们的项目也是, 放到 cdn 上,用4G网络访问就会加载不出某些音频文件,发工单咨询阿里云后,他们的工程师说是因为 运行商劫持。
mark
提供测试demo,帮你看看什么原因,正常测试下不会发生这样的问题。
找到问题了!!!
在1.9.2:
把资源移到腾讯云后,删除build后的res资源,运行ok
在2.0.5
把资源移到腾讯云后,只删除build后res下raw-assets资源就不会出现上面问题
特地回来感谢你~此方法好用!
哈哈,确认过眼神,都是被坑过的人。
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);
});
}
}
您说的那段代码要加在哪里呀?