В качестве проверки работоспособности я пытаюсь в начале своей HTML-страницы сделать очень простой SSI, echo
чтобы указать браузеру, что SSI работает:
index.html:
<script>var ssi_enabled = false</script>
<!--# set var="test" value="<script>ssi_enabled=true</script>" -->
<!--# echo var="test" -->
затем позже в JS:
if (!ssi_enabled) { console.log("SSI is not enabled!"); }
Но когда nginx echo
обрабатывает строку, HTML-теги очищаются следующим образом:
<script>ssi_enabled=true</script>
Я не могу найти в документации nginx ничего, что указывало бы на то, как echo
обрабатывать HTML.
Да, я знаю, что я мог бы импортировать файл html, но пытался избежать этого, так как это добавляет больше сложности. Кажется, это можно сделать, но мне просто не хватает правильного параметра для echo
.
Спасибо
решение1
nginxимеет encoding
параметр команды echo
(ср.поддерживаемые команды), который решает, как экранировать текст. Может иметь три значенияникто(это то, что вы ищете),URL-адреси по умолчаниюсущность. Сравните результаты:
<!--#set var="GREETING" value="<h1><strong>Hello <em>&World</em></strong></h1><p>àäáąåǎâ</p>" -->
<!--#echo var="GREETING" encoding="none" -->
<!--#echo var="GREETING" encoding="url" -->
<!--#echo var="GREETING" encoding="entity" -->