我正在使用更新的4.7.3 wordpress与wp-touch pro和varnish latest vrsion(5)
当我登录到wordpress仪表板时,桌面主题与移动设备之间的主题切换反之亦然
但是当我退出时它无法正常工作。
清漆代码
if (req.url ~ "\?wptouch_switch") {
return(pass);
}
我认为它wptouch开关没有通过清漆传递。但即使在我的vcl上面使用它仍然无效。
答案 0 :(得分:2)
上面的代码只确保切换网址没有被缓存。但是,您应该了解必须分别缓存相同URL的移动版和桌面版。这意味着移动和桌面设备的Varnish VCL中的哈希值不同。
您应该实现此类似于this config:
# The data on which the hashing will take place
sub vcl_hash {
# ....
if (req.http.X-Device ~ "smart" || req.http.X-Device ~ "other") {
hash_data(req.http.X-Device);
}
# ....
}
当然,仅靠这一点是不够的。您还需要复制其他相关部分,以便设置位于X-Device
程序中的sub detect_device
。
答案 1 :(得分:0)
将设备检测vcl添加到与default.vcl相同的文件夹
在默认情况下添加以下内容.vcl
sub vcl_recv {
call devicedetect;
if (req.http.Cookie ~ "wptouch-pro-view=desktop" )
{
return(pass);
}
}
sub vcl_hash {
if (req.http.X-UA-Device) {
hash_data(req.http.X-UA-Device);
}
if (req.http.wptouch) {
hash_data(req.http.wptouch);
}
}
sub vcl_deliver {
if ((req.http.X-UA-Device) && (resp.http.Vary)) {
set resp.http.Vary = regsub(resp.http.Vary, "X-UA-Device", "User-Agent");
}
}