如何强制更新邮件签名中图片的缓存?
邮件签名图片缓存更新解决方案
问题根源
你之前尝试用lastModified()生成URL参数的方法行不通,因为邮件客户端根本不支持执行JavaScript代码,这个语法在邮件里完全无效。
有效解决办法
手动添加静态版本参数(最稳妥)
每次替换服务器上的图片后,给URL加一个递增的版本号参数,比如第一次用?v=1,更新后改成?v=2,代码示例:<img style="display: block; max-width: 430px;" src="https://loremipsum.com/cdn/shop/files/event_banner.png?v=2" alt="event_banner" width="430" />邮件客户端会把带不同参数的URL判定为不同资源,直接加载新图片,不会调用缓存。
通过服务器配置控制缓存
如果能调整服务器的响应头,给这张图片设置短时效的缓存规则,比如Cache-Control: max-age=86400(缓存24小时)或者Cache-Control: no-cache(每次请求都验证资源是否更新)。这样即使不修改URL,客户端也会定期检查并加载最新图片。
关键提醒
邮件客户端对HTML的支持非常受限,所有依赖JavaScript动态生成内容的方法都无法生效,只能用静态参数或者服务器端缓存策略来解决问题。
内容的提问来源于stack exchange,提问作者Alexandre Laurent
相关产品推荐
相关产品推荐

