Переменные
Устанавливает одну или несколько переменных со значением, которое будет использоваться позже в цепочке обработки запроса.
Основной способ доступа к переменным — использование плейсхолдеров, имеющих вид {vars.variable_name}, или с помощью матчеров запроса vars и vars_regexp.
Переменные можно использовать с директивой templates с помощью функции placeholder, например: {{placeholder "http.vars.variable_name"}}
В качестве специального случая, можно переопределить переменную с именем http.auth.user.id, которая хранится в заменятеле, для обновления поля user_id в журналах доступа.
Синтаксис
vars [<matcher>] [<name> <value>] {
<name> <value>
...
}
-
<name> — имя переменной, которое нужно установить.
-
<value> — значение переменной.
Значение будет преобразовано к соответствующему типу, если это возможно;
trueиfalseбудут преобразованы в булевы типы, а числовые значения будут преобразованы в целые или вещественные числа соответственно. Чтобы избежать этого преобразования и сохранить их как строки, можно обернуть их в кавычки.
Примеры
Чтобы установить одну переменную, значение которой зависит от пути запроса, а затем вывести это значение:
example.com {
vars /foo* isFoo "yep"
vars isFoo "nope"
respond {vars.isFoo}
}
Чтобы установить несколько переменных, каждая из которых преобразуется в соответствующий скалярный тип:
vars { # boolean
abc true # integer
def 1 # float
ghi 2.3 # string
jkl "example"
}
© 2015-2025 Matthew Holt and The Caddy Authors
Licensed under the Apache License 2.0.
Caddy is a registered trademark of Stack Holdings GmbH.
https://caddyserver.com/docs/caddyfile/directives/vars