2

以前的问题看起来像是在问类似的问题,但没有得到回答。

我是否可以只更改服务器上的图像,保持相同的 URL,并依靠 HTTP 304 和其他机制重新加载图像的新版本,即使它们存在于缓存中?

我的第一个想法是,对图像的任何更改都必须同时更改图像的名称才能强制刷新。

可能的解决方法 - 假设我有一堆共享公共 URL 根的图像,例如https://server/path/A/image.pnghttps://server/path/B/anotherimage.png. 我可以从一个路径中删除所有图像而不使另一个无效 - 例如,当引用由内容表示的一大块信息的内容https://server/path/A发生更改时,我可以重新加载与其关联的每个图像,但不能重新加载其他文件夹中的图像?

到目前为止,我对 Kingfisher 的使用是基本的,使用 UIImageView 上的扩展:

myImage.kf.setImage(with: imageURL)

4

2 回答 2

5

可能这将帮助您 跳过缓存搜索,再次强制下载图像

imageView.kf.setImage(with: url, options: [.forceRefresh])
于 2018-10-18T06:40:52.993 回答
1

首先为 Kingfisher 分配一个默认占位符和 forceRefresh

let tempImage = UIImage(named: "user_placeholder")
 self.avatarImageView.kf.indicatorType = .activity
 self.avatarImageView.kf.setImage(with: avatarURL,placeholder: tempImage,options: [.forceRefresh])
于 2020-09-17T08:15:34.867 回答