Nextjs镜像缓存失效

a9wyjsp7  于 2023-06-05  发布在  其他
关注(0)|答案(2)|浏览(361)

我使用aws s3 buckets来存储我的资产。当任何现有资产从前端发生变化时(例如:客户端改变了他的个人资料图片)的后端,我将改变资产,只有不接触的网址。现在这里是我的网站中的问题,我在getStaticProps中使用revalidate,但仍然因为链接是相同的,图像的缓存版本没有更新,所以有什么方法可以以编程方式更新这些图像缓存?
顺便说一下,当我点击DevTools并从Network选项卡看到预览时,它显示了资产的正确版本

vlf7wbxs

vlf7wbxs1#

如果你添加一个时间戳到你的图像url作为查询参数,它可以在客户端渲染。不确定服务器端渲染。给予看

const url = 'http://someHost.someBucket.someImageName.jpeg'
const timeStamp = new Date().getTime()
<img src={`${url}?${timestamp}`} />
oknwwptz

oknwwptz2#

根据Nazrul的回答,我提出了以下方法来优化我的情况(并使用Next Image组件):

const media = { 
  url: 'http://someHost.someBucket.someImageName.jpeg',
  id: '123456789'
}
<Image src={`${media.url}?${media.id}`} />

我在一个用户可更新的页面中使用这个,如果我使用时间戳选项,我经常会为我的图像获取一个加载器,而实际上并不需要重新缓存。对我来说,使用id(只有当媒体是全新的时才会改变)可以减少重新缓存的次数。

相关问题