Hey alle zusammen. Ich verwende Edge Side Includes on Varnish, um eine statische HTML-Shell zwischenzuspeichern, und schließe dann dynamisches HTML und ein JSON-Objekt ein.Varnish ESI anerkannt, aber nicht enthalten
Die ESI für HTML wird ordnungsgemäß aufgenommen, aber die ESI für das JSON-Objekt wird nicht eingeschlossen; Debug-Anweisungen stellen fest, dass Varnish es sieht, aber es entschließt sich unerklärlicherweise, das JSON ESI nicht einzubeziehen.
Hier ist die Ladestruktur:
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.
Wieder esi 1 und esi 3 Arbeit ganz gut, aber esi 2 ist nicht enthalten zu werden. Der Gehalt an esi 2 ist gerade dies:
{session_page_history_id:24231}
ich gelesen, dass ESI-Code, wie XML aussehen keine Fehler verursacht, so habe ich den Laufzeitparameter esi_syntax = 0x7. Keine Würfel, aber zumindest bekomme ich jetzt Debug-Daten.
Der zerbrochene Ruf nach esi 2 wie folgt aussieht:
<esi:include src="http://www.domain.com/dynamic_esi/print_variables?esi__desired_var_names[]=session_page_history_id&for_esi=1"/>
Und das (Arbeits-) Ruf nach esi 3 sieht wie folgt aus:
<esi:include src="http://www.domain.com/dynamic_esi/get_service_magic_html?&for_esi=1"/>
Wie ich bereits erwähnte, Lack scheint zu erkennen, dass ich versuche, ein ESI-Include zu machen, aber das ist die einzige relevante Debug-Nachricht, die ich von Lacklog erhalten habe:
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.
Die Ausgabe, die von einem Client angezeigt wird, enthält den normalen Inhalt, aber das < esi> -Tag bleibt intakt. Es sieht genauso aus wie in der obigen Debug-Nachricht.
Weiß jemand, warum esi 2 wird nicht geparst/enthalten? Jede Hilfe wäre sehr geschätzt!