清漆是否将布尔值转换为字符串?
Is varnish casting boolean to string?
我们在实时环境中安装了 varnish 4.0.3。
我们在 varnish vcl_recv
:
中从我们的 vcl 文件中提取这段代码
set req.http.x-is-static-resource = true; #boolean assignment
# some code
if (req.http.x-is-static-resource == true) { # boolean == boolean ?
# some code
}
但是遇到这个错误:
Message from VCC-compiler:
Comparison of different types: STRING '==' BOOL
('/etc/varnish/utils.vcl' Line 429 Pos 37)
if (req.http.x-is-static-resource == true) {
------------------------------------##--------
我们在几个代码中发现了这种赋值:
- https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl
- https://www.varnish-cache.org/trac/wiki/VCLExampleHashAlwaysMiss
我认为 varnish 不应该出现这个错误。我们分配一个布尔类型,我们期望一个布尔类型,对吧?
我们缺少什么?
谢谢
您找到的作业不是 req.http - req.http。[name] 是访问请求 header [name] 的一种方式。 Headers 是字符串,不是布尔值。不过,您仍然可以通过一些小的改动来完成这项工作:
set req.http.x-is-static-resource = "true";
[...]
if (req.http.x-is-static-resource) { [...]
我们在实时环境中安装了 varnish 4.0.3。
我们在 varnish vcl_recv
:
set req.http.x-is-static-resource = true; #boolean assignment
# some code
if (req.http.x-is-static-resource == true) { # boolean == boolean ?
# some code
}
但是遇到这个错误:
Message from VCC-compiler:
Comparison of different types: STRING '==' BOOL
('/etc/varnish/utils.vcl' Line 429 Pos 37)
if (req.http.x-is-static-resource == true) {
------------------------------------##--------
我们在几个代码中发现了这种赋值:
- https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl
- https://www.varnish-cache.org/trac/wiki/VCLExampleHashAlwaysMiss
我认为 varnish 不应该出现这个错误。我们分配一个布尔类型,我们期望一个布尔类型,对吧?
我们缺少什么?
谢谢
您找到的作业不是 req.http - req.http。[name] 是访问请求 header [name] 的一种方式。 Headers 是字符串,不是布尔值。不过,您仍然可以通过一些小的改动来完成这项工作:
set req.http.x-is-static-resource = "true";
[...]
if (req.http.x-is-static-resource) { [...]