构建时给资源加上MD5,但是对于代码里cc.url.raw('')本地路径怎么办?

如题所述,比如:

本地有个加载cc.loader.load(cc.url.raw(‘resources/music/filename’),…);

比如我这里的filename是一个mp3,未构建前完整的文件名是filename.mp3。

md5构建后,filename.mp3文件名已经发生了改变,以上路径加载,就会找不到文件,404错误,如何解决这个问题?

找了好多地方,文档、论坛都没找到相关资料、介绍等。。。。求大神告知。。。谢谢!

@jare 求回复。。这个问题很困扰我。。

这个写后缀吗,我忘了,好像.mp3是不用写的

总感觉你这个写的怪怪的

不用写后缀,那也不对啊。关键问题是:文件名发生了变化,找不到了。

cc.url.raw用在什么场合,我怎么没用过

那可以看下文档,这里它不是重点。

var path = cc.url.raw(‘xxxx’);
if (cc.loader.md5Pipe) {
path = cc.loader.md5Pipe.transformURL(path);
}

3赞

非常感谢,有用!!

你这个方法在1.8.1版本上没有啊,要怎么解决

升级到 1.8.2

666
微信分享的时候要用到图片
不然找不到

大佬, 我用你给的方法, 结果返回的还是md5构建之前的文件名, 无法得到md5后的文件名啊, 哭瞎。

cc.url.raw 执行后再调用我的方法

我最近做微信小游戏登录碰到类似的问题, 总结出:
先let path = cc.url.raw(resources/common/BG.png)再path = cc.loader.md5Pipe.transfromURL(path), 一定要注意路径正确, 包括大小写! 我就碰过这段代码不行的, 因为实际路径是resources/Common/BG.png, Common大写的C

1赞

jare的方法是没问题的, 用的时候要注意路径正确特别是大小写.

cc.loader.md5Pipe这个方法在1.9.3没有吗

构建时,勾选了 MD5Cache 就有

cc.loader.md5Pipe 不存在怎么办

大哥,你的transfromURL写错了,应该是transformURL,我找半天找不到……