Comment empêcher Térébenthine de mettre en cache mon bloc « en-tête » et d'utiliser uniquement le cache de page ?

magento.stackexchange https://magento.stackexchange.com//questions/79734

  •  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.

Était-ce utile?

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/

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top