我有这个:
if (bereq.http.X-Path ~ "[a-z0-9]+\.(js|css)$") {
set beresp.http.Cache-Control = "max-age=259200";
}
我需要编写一个test.vtl来证明它是有效的。我正在尝试:
client c1 {
txreq -url "/content/css/main.min.aer234vcvb.css"
rxresp
} -run
但它失败了。
答案 0 :(得分:0)
问题是你 - 在X-Path
与http标头相符的情况下匹配你的条件。
因此,在你的client
中,你没有发送它,而且条件不匹配。
根据您的配置查看此示例,但是使用X-Path发送。
varnishtest "Test Cache-Control on X-Path"
server s1 {
rxreq
txresp
} -start
varnish v1 -vcl+backend {
sub vcl_backend_response {
if (bereq.http.X-Path ~ "[a-z0-9]+\.(js|css)$") {
set beresp.http.Cache-Control = "max-age=259200";
}
}
} -start
client c1 {
txreq -url "/content/css/main.min.aer234vcvb.css" -hdr "X-Path: /content/css/main.min.aer234vcvb.css"
rxresp
expect resp.http.Cache-Control == "max-age=259200"
} -run
您可能想要查看bereq.url
而非bereq.http.X-Path
?