Эй, все. Я использую Edge Side Includes on Varnish для кэширования статической оболочки HTML, а затем включает в себя некоторый динамический HTML и объект JSON.Лак ESI распознается, но не включен
ESI для HTML включен правильно, но ESI для объекта JSON не включается; Заявления отладки устанавливают, что Varnish видит это, но он необъяснимо решает не включать JSON ESI.
Вот погрузка структура:
pageuncached. blank page with headers to set a cookie and esi 1
esi 1cached. A bunch of static HTML, plus esi 2 and esi 3
esi 2uncached. A JSON object which is different on every page load.
esi 3uncached. Some HTML which updates with every page load.
Опять еси 1 и еси 3 работы просто отлично, но еси 2 не получает включен. Содержание в ЭРИ 2 только это:
{session_page_history_id:24231}
Я прочитал, что ESI код, который не похож на XML приводит к ошибкам, так что я установить параметр выполнения esi_syntax = 0x7. Нет кубиков, но, по крайней мере, сейчас я получаю отладочные данные.
Разбитый призыв к ЭРИ 2 выглядит следующим образом:
<esi:include src="http://www.domain.com/dynamic_esi/print_variables?esi__desired_var_names[]=session_page_history_id&for_esi=1"/>
И в (рабочий) призыв к ЭРИ 3 выглядит следующим образом:
<esi:include src="http://www.domain.com/dynamic_esi/get_service_magic_html?&for_esi=1"/>
Как я уже говорил, отделочные материалы похоже, что я пытаюсь включить ESI, но это единственное релевантное сообщение отладки, которое я получаю от лакового дерева:
25 Debug c AddBit: 6997 <<![CDATA[
window.esi__values =
<esi:include src="http://www.domain.com/dynamic_esi/print_variables?esi__desired_var_names[]=session_page_history_id&for_esi=1"/>
;
//]]>
</script>
<link rel="stylesheet" href="http://www.
Выход, видимый клиентом, содержит все нормальное содержимое, но с тегом < esi>, оставленным нетронутым. Это похоже на то, что вы видите в приведенном выше сообщении отладки.
Кто-нибудь знает, почему esi 2 не получает синтаксический анализ/включен? Любая помощь была бы высоко оценена!