Comment empêcher Térébenthine de mettre en cache mon bloc « en-tête » et d'utiliser uniquement le cache de page ?
-
13-12-2019 - |
Question
Dans mon header.phtml
, j'ai un code HTML spécifique à la première page (H1
balise) sous $this->getIsHomePage()
condition.j'ai besoin de ça H1
pour apparaître uniquement en première page.
Le problème est:sous Térébenthine, ceci H1
la balise apparaît sur chaque page.Je pense que c'est parce que Turpentine met en cache le bloc pour l'ensemble du site.
Par défaut, turpentine_esi.xml
a la configuration suivante pour header
bloc:
<!--
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>
Je n'ai pas les informations de connexion dans le modèle d'en-tête, je pense donc que je peux simplement supprimer le header
bloquer de la configuration (ou plutôt le remplacer dans local.xml
).
La solution à laquelle je peux penser est la suivante :ne pas mettre en cache header
bloquez du tout dans Turpentine, mettez-le en cache dans la page HTML complète.J'ai donc retiré cette pièce de turpentine_esi.xml
.
Le problème est:le bloc H1 est toujours rendu sur toutes les pages.
J'ai redémarré le vernis, php5-fpm, supprimé physiquement celui de Magento var/cache
, blocs vidés, blocs ESI et cache HTML de page dans l'administrateur...et je vois toujours la mauvaise version du modèle d'en-tête, avec H1
sur chaque page.
D'une autre façon, j'ai essayé de changer le header
options de mise en cache pour public
- cela n'a pas aidé non plus :
<reference name="header">
<action method="setEsiOptions">
<params>
<access>public</access>
</params>
</action>
</reference>
J'utilise Magento 1.9.0.1.
La solution
En fin de compte, j'ai dû remplacer (supprimer) le header
bloquer de turpentine_esi.xml
dans app/design/frontend/base/default/layout/local.xml
.Mon 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>
Autres conseils
<reference name="header">
<action method="setEsiOptions">
<params>
<access>private</access>
</params>
</action>
</reference>
Veuillez également consulter ce lien https://rajeshganjeer.wordpress.com/2014/05/28/varnish-with-magento-terpentine/