[Beitrag von Konstantin G.]{class="badge informative" title="Konstantin G."}
Varnischer ESI-Block
Edge Side Includes (ESI) sind spezielle Anweisungen, mit denen Sie Webseiten in andere Webseiten einbinden können.
Beispiel:
<div>
<esi:include src="http://domain.com/index.php/page_cache/block/esi/blocks"/>
</div>
Varnish ruft Inhalt aus http://domain.com/index.php/page_cache/block/esi/blocks
und ersetzen Sie die <esi>
-Tag.
Handel und Viehzucht-ESI
Das Commerce-Framework erstellt ein ESI-Tag, wenn die folgenden Bedingungen erfüllt sind:
- Die Caching-Anwendung ist auf
Varnish Cache
- Ein XML-Layout
block
-Element mit einerttl
attribute
Beispiel
cms_index_index.xml
:
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" template="Magento_Paypal::esi.phtml" ttl="30"/>
</referenceContainer>
Im obigen Beispiel wird die Variable block
-Element fügt Inhalt aus dem esi.phtml
Vorlage auf eine Startseite umstellen und Varnish aktualisiert sie automatisch alle 30 Sekunden.
Einschränkungen
Derzeit unterstützt Varnish ESI nicht über HTTPS, sodass es automatisch zu HTTP wechselt.
Magento\PageCache\Observer\ProcessLayoutRenderElement
:
private function _wrapEsi(
\Magento\Framework\View\Element\AbstractBlock $block,
\Magento\Framework\View\Layout $layout
) {
....
// Varnish does not support ESI over HTTPS must change to HTTP
$url = substr($url, 0, 5) === 'https' ? 'http' . substr($url, 5) : $url;
return sprintf('<esi:include src="%s" />', $url);
}
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c