目前正在使用Symfony 3应用程序。我创建了一项服务,允许用户上传图片,然后选择裁剪部分,最后保存具有特定高度和宽度的头像。化身保存在/web/img/uploads/avatar/
文件夹中。我正在使用用户名来命名文件。因此,ID为13的用户将他的头像保存在/web/img/uploads/avatar/13.png
。Symfony 3 - 图像没有立即更新
我的问题是,当用户更新他的头像时,该文件在文件夹中被正确替换,但在实际网站上显示的头像仍旧保留旧头像一段时间。 在开发环境中,这需要在新的头像替换旧头像几分钟之前。即使我去了头像网址(localhost/app_dev.php/img/uploads/avatar/xxx.png
),我仍然看到旧的头像一段时间,然后它最终被新头像取代。如预期的那样,文件系统中的化身立即被替换掉了。
我想这可能来自缓存。我试图在谷歌搜索解决方案,但我发现所有与LiipImagineBundle和它的缓存管理器有关,但我没有使用这个捆绑...
我试图删除旧的头像,如果它找到它的名字后,并在实际裁剪和保存图像之前。如下。
if(file_exists($dst)) {
unlink($dst);
}
但它不起作用。完全一样。
任何想法?
它只是浏览器缓存 – bxN5
除了告诉我的用户“嘿,你改变了你的头像,这很棒,现在等待一段时间,直到你的浏览器最终决定更新它的缓存,我会看到你的全新照片。“ ? 或者只是随机图像的名字我想,这样因为它的URL变化将每个用户上传一个新头像时获得一个新的。 – Kishlin
尝试发送您的客户端头(缓存控制:无缓存,必重新验证) – bxN5