xiaoman122 我们安卓的项目打包了缓存的资源 同时我们使用了cdn,为了保证能更新到最新代码和资源,避免从cdn节点取到老的节点缓存资源,我们每次更新的时候会在cdn路径前加版本号,但是这样做,会导致最开始打包缓存的资源(包括我上次玩游戏缓存下来的资源)全部都要重新下载! 请问如何解决,我之前已下载的资源为何dcc没生效,要全部重新下载呢,dcc应该是保证只下载改变过的资源吧 或者 有没有办法不在cdn路径上加版本号,也能保证每次能下载到最新的呢
Aar0n dcc不能加版本号,否则就被认为是另外的资源,导致缓存失效。dcc是与cdn兼容的,dcc的版本号文件每次都会回源拉取,根据这个信息,能判断什么文件需要更新,如果发现文件需要更新了,会自动给文件加版本号,导致这个文件的请求回源
xiaoman122 Aar0n dcc是与cdn兼容的,dcc的版本号文件每次都会回源拉取,根据这个信息,能判断什么文件需要更新,如果发现文件需要更新了,会自动给文件加版本号,导致这个文件的请求回源 1、 dcc的版本号文件每次回源拉取:app应该不知道源站在哪里把?难道可以通知节点立即去源站拉取最新资源吗?2、文件需要更新了,会自动给文件加版本号:res.cdn.xxx/res/a.png?v=Math.random 这种方式么,这种好像只能破坏本地缓存,无法破坏节点缓存吧? 麻烦给个详细解释,感谢!
guozhaokui 一旦dcc需要强制下载某个文件,例如版本文件或者需要更新的文件,都会加上一个版本号,这样会导致节点cdn缓存失效,cdn自然会去源站下载,并更新本地缓存。app不需要知道源站地址。每次加的版本号不是随机的,与版本有关,所以一个人更新后,所有此节点的用户都会取到新的。
Demon 同样存在一样的问题,dcc文件每次都回源拉取,这样有个问题就是CDN界面资源还未生效但dcc版本号已经回源拉取到最新,导致本地缓存文件保存的url已经根据最新的dcc版本号缓存了本地资源,但实际上本地缓存的资源还是旧的!即便节点资源生效,也不会重新download,本地缓存始终获取到旧的资源!这个问题怎么处理!