Wie kann ich verhindern, dass Terpentin meinen "Header" -Block zwischenspeichert und nur den Seitencache verwendet?
-
13-12-2019 - |
Frage
In meinem header.phtml
, Ich habe ein Titelseiten-spezifisches HTML (H1
tag) unter $this->getIsHomePage()
Bedingung.Ich brauche das H1
nur auf der Titelseite erscheinen.
Das Problem ist:unter Terpentin ist dies H1
tag erscheint auf jeder Seite.Ich glaube, das liegt daran, dass Terpentin den Block für die gesamte Site zwischenspeichert.
Standardmäßig, turpentine_esi.xml
hat die folgende Konfiguration für header
Block:
<!--
A default Magento site includes a logged in user's name in the welcome
message and the number of items in the shopping cart so it must be
cached per-client.
-->
<reference name="header">
<action method="setEsiOptions">
<params>
<access>private</access>
<flush_events>
<wishlist_item_save_after/>
<wishlist_item_delete_after/>
<sales_quote_save_after/>
</flush_events>
</params>
</action>
</reference>
Ich habe die Anmeldeinformationen nicht in der Header-Vorlage, daher glaube ich, dass ich die einfach löschen kann header
blockieren Sie die Konfiguration (oder überschreiben Sie sie in local.xml
).
Die Lösung, die ich mir vorstellen kann, ist:nicht zwischenspeichern header
blockieren Sie Terpentin überhaupt, cachen Sie es im ganzseitigen HTML-Code zwischen.Also habe ich dieses Stück entfernt turpentine_esi.xml
.
Problem ist:der H1-Block wird weiterhin auf allen Seiten gerendert.
Ich habe Varnish, php5-fpm neu gestartet und Magentos physisch gelöscht var/cache
, gelöschte Blöcke, ESI-Blöcke und Seiten-HTML-Cache im Admin...und ich sehe immer noch die falsche Version der Header-Vorlage mit H1
auf jeder Seite.
Auf eine andere Weise habe ich versucht, das zu ändern header
caching-Optionen zu public
- das hat auch nicht geholfen:
<reference name="header">
<action method="setEsiOptions">
<params>
<access>public</access>
</params>
</action>
</reference>
Ich benutze Magento 1.9.0.1.
Lösung
Am Ende musste ich das überschreiben (entfernen) header
blockieren von turpentine_esi.xml
in app/design/frontend/base/default/layout/local.xml
.Mein local.xml
:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="header">
<action method="setEsiOptions">
</action>
</reference>
<!-- We at Tahta.com.ua only need to cache the cart block. -->
<reference name="top_cart_block">
<action method="setEsiOptions">
<params>
<access>private</access>
<flush_events>
<wishlist_item_save_after/>
<wishlist_item_delete_after/>
<sales_quote_save_after/>
</flush_events>
</params>
</action>
</reference>
</default>
</layout>
Andere Tipps
<reference name="header">
<action method="setEsiOptions">
<params>
<access>private</access>
</params>
</action>
</reference>
Bitte verweisen Sie auch auf diesen Link https://rajeshganjeer.wordpress.com/2014/05/28/varnish-with-magento-terpentine/