cocos 有办法清理cache吗?

想问,我往server那用cc.loader.load下载图片时,会有cache的问题,server更新图片时我会再重抓,
但就算重新整理cocos还是一样,除非我把网页的cache清掉,
我有试着再专案的index.html上加入Cache-Control: no-store,不过似乎没什么效果

希望能实作个不会存cache的档案让我参阅学习一下 <_ _>

顶一个 有人知道吗?

不清楚诶,没用过这些东西

1赞

@ga2006467270

看到你有有改index.html的缓存设置, 你应该是说的web平台的缓存问题.
首先一个很重要的一点你没说到, 你的图片文件是否有md5后缀.
有跟没有MD5后缀是两种完全不同的解决方法.

每个资源文件的加载都是一个独立的http请求, 每个http请求都是独立的缓存控制. 你对index.html的缓存控制对资源文件是无效的.

最佳实践应该是资源文件(png/jpg/js/json/mp3等等)增加md5后缀, 那么只要资源文件有改变, 那么url肯定不一样. 这个情况, 缓存用长时间, 几个星期或者几个月都可以. html文件设置无缓存 “Cache-Control: no-cache”. no-cache 比 no-store 有更好的性能, 如果文件没有更新, 文件不会重复下载.

2赞

感谢回复,首先没有用md5
可以的话我是想用url对固定名子的网址重新读取的,
就像是圣诞节版本我可以晚上自己在伺服器改个图片(或自动更换)
,那圣诞节当天玩家可以直接看到图片有变,

每个资源文件的加载都是一个独立的http请求, 每个http请求都是独立的缓存控制. 你对index.html的缓存控制对资源文件是无效的.

那我想对资源文件进行缓存控制,是要在我的cc.loader.load內的 url加上些特殊的程式码让他认知到不能有Cache吗?想知道要怎么做,还是说没有用md5就没办法做?

cc.loader.load一张远程图片,路径一样的情况下,想每次都重新load,以便看到资源服替换的最新资源,可以在资源url后面跟上时间戳参数,比如:
https://forum.cocos.org/uploads/default/original/3X/e/9/e9d3766c2a07c882c1763e9e1753e28796c067e9.png?t=” + Date.now();

1赞

@ga2006467270

缓存控制是要在http服务器(ngxin/apache等)上改的, 你目前的情况, 给url加个时间戳就可以解决问题了.

上面的帖子有说到

cc.loader.load一张远程图片,路径一样的情况下,想每次都重新load,以便看到资源服替换的最新资源,可以在资源url后面跟上时间戳参数,比如:
https://forum.cocos.org/uploads/default/original/3X/e/9/e9d3766c2a07c882c1763e9e1753e28796c067e9.png?t=” + Date.now();

1赞

感谢,刚刚看了很兴奋去改了我的架构,全部改完才回覆,真的可行,真的帮了大忙了!

1赞