首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制资产重新缓存

问强制资产重新缓存
EN

Stack Overflow用户
提问于 2018-08-23 10:04:10
回答 1查看 517关注 0票数 2

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),但这显然只服务于未优化但已缓存的图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-24 02:00:34

一种解决方案是将随机查询字符串附加到图像src URL以防止缓存。如果你在一个模板主题上进行开发,最简单的方法就是使用{{moment}}帮助器来生成一个日期字符串,这样你就可以确保每次都会得到一个唯一的值。

代码语言:javascript
复制
<img src="/content/home-hero.jpg?{{moment}}"/>

将呈现为:

代码语言:javascript
复制
<img src="/content/home-hero.jpg?2018-08-23T00:00:00-05:00">

有关使用查询字符串防止缓存的更多信息:https://css-tricks.com/strategies-for-cache-busting-css/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51977405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档