如何使用URL中的修订查询来缓存静态资产

时间:2013-02-05 07:04:29

标签: varnish

我想在我的静态资源中添加修订号,这样当他们更新时,浏览器会刷新它们 - how to force browsers reload static assets after code deployment?

如果没有修订查询字符串,我可以看到'varnishstat'中的命中,我看到它将请求传递给后端。

如何使用修订缓存静态资产?

2 个答案:

答案 0 :(得分:0)

将静态资源正则表达式更改为以下内容:

if (req.url ~ "\.(jpeg|jpg|png|gif|ico|swf|js|css)(\?.*|)$") {
  return (lookup);
}

它也会与修订相匹配。

答案 1 :(得分:0)

这是一个奇怪的需求,但以下代码可以解决您的问题:

sub vcl_recv {
  set req.url = regsub(req.url, "(\.(jpeg|jpg|png|gif|ico|swf|js|css))\?.*$", "\1");
}

每次在后端更新资源时,您都需要清除清漆缓存(清除/禁止)。