Cornerstone的旋转木马不适用于我客户的设计,因此我构建了一个自定义英雄组件,并将其包含在几个自定义页面模板中。为了允许客户端手动更新图像,我将英雄图像设置为使用{{cdn}} handlebars帮助器从WebDAV下拉图像。
例如,background-image: url('{{cdn "webdav:img/home-hero.jpg"}}');
我们现在遇到的问题是,因为CDN在服务器上缓存站点的资产文件,所以当我的客户端通过WebDAV更新home-hero.jpg时,服务器无法知道,因此它继续提供旧版本的home-hero.jpg。
我的客户端有没有办法强制重新缓存资产,或者完全绕过它?我尝试使用imbypass参数(webdav:img/home-hero.jpg?imgbypass=on),但这显然只服务于未优化但已缓存的图像。
发布于 2018-08-24 02:00:34
一种解决方案是将随机查询字符串附加到图像src URL以防止缓存。如果你在一个模板主题上进行开发,最简单的方法就是使用{{moment}}帮助器来生成一个日期字符串,这样你就可以确保每次都会得到一个唯一的值。
<img src="/content/home-hero.jpg?{{moment}}"/>将呈现为:
<img src="/content/home-hero.jpg?2018-08-23T00:00:00-05:00">有关使用查询字符串防止缓存的更多信息:https://css-tricks.com/strategies-for-cache-busting-css/
https://stackoverflow.com/questions/51977405
复制相似问题