ssi на nginx, используя переменные и условные выражения

Я использую nginx для сервера моих статических страниц. Чтобы меню динамически изменяло class = "active" на соответствующей странице, я пытаюсь использовать переменные SSI. Итак, у меня есть это на самой странице:

<!--#set var="pageOn" value="floorCare" -->

, а затем немного ниже:

<!--#include virtual="./includes/header.html" -->

Внутри файла header.html у меня есть:

foo: <!--# if expr="(${pageOn} = floorCare" -->class="active"<!--# endif -->

Насколько я понимаю (из того, что я прочитал сегодня), что это должно работать. Вместо этого я получаю:

foo: [произошла ошибка при обработке

<!--#set var="pageOn" value="floorCare" -->

, а затем немного ниже:

<!--#include virtual="./includes/header.html" -->

Внутри файла header.html у меня есть:

foo: <!--# if expr="(${pageOn} = floorCare" -->class="active"<!--# endif -->

Как я понимаю (из того, что я прочитал сегодня), это должно работать. Вместо этого я получаю:

foo: [произошла ошибка при обработке

<!--#set var="pageOn" value="floorCare" -->

, а затем немного ниже:

<!--#include virtual="./includes/header.html" -->

Внутри файла header.html у меня есть:

foo: <!--# if expr="(${pageOn} = floorCare" -->class="active"<!--# endif -->

Как я понимаю (из того, что я прочитал сегодня), это должно работать. Вместо этого я получаю:

foo: [произошла ошибка при обработке директива] class = "active" [произошла ошибка при обработке директива]

Я знаю, что SSI работает (в противном случае верхний / нижний колонтитул включен)

Что мне не хватает?

0
задан 10 June 2017 в 16:41
1 ответ

В значении expr= есть дополнительная скобка.

Должна быть: expr="${pageOn} = floorCare" или expr="$pageOn = floorCare", скобки не являются допустимым синтаксисом вне строки.

.
1
ответ дан 4 December 2019 в 16:14

Теги

Похожие вопросы