ImageKnife控件会有缓存读取失败

将头像地址分成了两份,一份是beseUrl地址,就是不包含参数的地址“https://tva3.sinaimg.cn/crop.0.0.720.720.180/005MvQ2yjw8ezmmla6zgqj30k00k0gn5.jpg”和paramsString参数部分

“?KID=imgbed,tva&Expires=1707058039&ssig=9UIQJi8uzv”在imageknife中除了传入了loadSrc(beseUrl)的图片地址,还传入了paramsString,如果没有命中缓存,就会以beseUrl+paramsString的完整地址的形式去服务端读取图片。

HarmonyOS
2024-05-12 22:44:57
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
平方厘米

删除整个缓存目录会导致后续的缓存和读取出问题,并不建议这样直接暴力删除,可以尝试只删目录里面的文件,把目录留着

代码示例:

let cacheDir = getContext().cacheDir + “/diskLruCache” 
fs.listFile(cacheDir).then((filenames: Array<string>) => { 
  for (let i = 0; i < filenames.length; i++) { 
    console.log(“TEST== filenames[” + i + "]: " + filenames[i]) 
 
    let filePath = cacheDir + “/” + filenames[i]; 
    fs.unlink(filePath).then(() => { 
      console.log("TEST== 删除文件: " + filePath) 
    }).catch((err: BusinessError) => { 
      console.error("TEST== remove file failed with error message: " + err.message + ", error code: " + err.code); 
    }); 
 
    console.log("TEST== cacheDir: " + cacheDir) 
    console.log(“TEST== 缓存已清除”) 
    this.isCacheClear = false; 
 
  } 
}).catch((err: BusinessError) => { 
  console.error("TEST== list file failed with error message: " + err.message + ", error code: " + err.code); 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
分享
微博
QQ
微信
回复
2024-05-13 15:51:17
相关问题
HarmonyOS ImageKnife加载网络图片失败
821浏览 • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败
1237浏览 • 1回复 待解决
HarmonyOS 读取应用中的资源失败
667浏览 • 1回复 待解决
HarmonyOS 相机拍照完,照片读取失败
686浏览 • 1回复 待解决
HarmonyOS imageknife2.x如何切imageknife3.x
1296浏览 • 1回复 待解决
HarmonyOS Imageknife使用问题
732浏览 • 1回复 待解决
读取证书里扩展项的内容失败
792浏览 • 1回复 待解决
HarmonyOS图片加载框架ImageKnife
1159浏览 • 1回复 待解决
HarmonyOS ImageKnife出现fd过载
613浏览 • 1回复 待解决
ImageKnife 图片库相关问题
1770浏览 • 1回复 待解决
ImageKnife无法加载网络jpeg图
7242浏览 • 1回复 待解决