[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 einer ttl 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