我有一个页面缓存运行(Varnish),并且VCL在传递页面时将X-Cache标头设置为HIT或MISS。当我正在调试时,我厌倦了在浏览器中查找页面标题以查看页面是否是命中或遗漏;我想改变页面背景(或边框)。
Varnish不会让我修改正文,只是标题和Cookie。
我可以更改VCL以设置cookie,然后在插件中实现一些Javascript以检查cookie并更改背景......但我觉得必须有更优雅的方式来执行此操作。
以前是否有人做过这类事情,它是如何运作的?
答案 0 :(得分:2)
我认为更优雅的方式是使用Link标头发送样式。这不涉及发送cookie或使用Javascript。
但这只适用于Firefox:
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "cached";
} else {
set resp.http.X-Cache = "uncached";
set resp.http.Link = "</miss.css>;rel=stylesheet;type=text/css;media=all";
}
}
答案 1 :(得分:0)
您将通过cookie方法体验'竞争条件',因为该状态在浏览网站的所有标签之间共享。最好的方法是:
hit
miss
/ req.http.whatever
个标记
/color-hack.html
)。/color-hack.html
期间捕获vcl_recv
个请求,跳转到vcl_synth
,并根据req_top.http.whatever
中的标记值生成一些HTML或JavaScript。然后,您可以在客户端使用它来更改您想要做的任何步调的颜色。我知道它看起来有点复杂,但如果您熟悉ESI&amp ;;它应该很容易实现。综合反应。