В качестве проверки работоспособности в начале моей 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 ничего, что указывает, как выводить
необработанный HTML.
Да, я знаю, что могу импортировать html-файл, но пытался избежать этого, так как это добавляет сложности. Похоже, это можно сделать, но мне просто не хватает правильного параметра для echo
.
Спасибо
nginx имеет параметр encoding
для команды echo
(см. supported commands), который решает, как чтобы избежать текста. Он может иметь три значения: none (это то, что вам нужно), url и значение по умолчанию entity. Сравните результаты:
<!--#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" -->