【发布时间】:2013-02-07 00:44:08
【问题描述】:
我想为我的静态资产添加一个修订号,以便在更新它们时浏览器会刷新它们 - how to force browsers reload static assets after code deployment?
如果没有修订查询字符串,我可以在 'varnishstat' 中看到命中,我看到它会将请求传递到后端。
如何缓存带有修订的静态资产?
【问题讨论】:
标签: varnish
我想为我的静态资产添加一个修订号,以便在更新它们时浏览器会刷新它们 - how to force browsers reload static assets after code deployment?
如果没有修订查询字符串,我可以在 'varnishstat' 中看到命中,我看到它会将请求传递到后端。
如何缓存带有修订的静态资产?
【问题讨论】:
标签: varnish
将您的静态资产正则表达式更改为以下内容:
if (req.url ~ "\.(jpeg|jpg|png|gif|ico|swf|js|css)(\?.*|)$") {
return (lookup);
}
它也会匹配修订版。
【讨论】:
这是一个奇怪的需求,但以下代码应该可以解决您的问题:
sub vcl_recv {
set req.url = regsub(req.url, "(\.(jpeg|jpg|png|gif|ico|swf|js|css))\?.*$", "\1");
}
每次在后端更新资源时,您都需要清除清漆缓存(清除/禁止)。
【讨论】: