Como impedir que a terebintina armazene em cache meu bloco de “cabeçalho” e use apenas o cache de página?

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

  •  13-12-2019
  •  | 
  •  

Pergunta

No meu header.phtml, tenho um HTML específico da primeira página (H1 tag) abaixo $this->getIsHomePage() doença.eu preciso disso H1 aparecer apenas na primeira página.

O problema é:sob terebintina, isso H1 tag aparece em todas as páginas.Acredito que seja porque o Turpentine armazena em cache o bloco para todo o site.

Por padrão, turpentine_esi.xml tem a seguinte configuração para header bloquear:

    <!--
    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>

Não tenho as informações de login no modelo de cabeçalho, então acredito que posso simplesmente descartar o header bloquear da configuração (ou melhor, substituí-lo em local.xml).

A solução que consigo pensar é:não armazene em cache header bloquear no Turpentine, armazene-o em cache no HTML da página inteira.Então eu removi esta peça de turpentine_esi.xml.

O problema é:o bloco H1 ainda é renderizado em todas as páginas.

Eu reiniciei o verniz, php5-fpm, excluí fisicamente o Magento var/cache, blocos liberados, blocos ESI e cache HTML da página no admin...e ainda vejo a versão errada do modelo de cabeçalho, com H1 em cada página.

De outra forma, tentei mudar o header opções de cache para public - isso também não ajudou:

    <reference name="header">
        <action method="setEsiOptions">
            <params>
                <access>public</access>
            </params>
        </action>
    </reference>

Estou usando Magento 1.9.0.1.

Foi útil?

Solução

No final, precisei substituir (remover) o header bloquear de turpentine_esi.xml em app/design/frontend/base/default/layout/local.xml.Meu 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>

Outras dicas

<reference name="header">
 <action method="setEsiOptions">
    <params>
        <access>private</access>
    </params>
 </action>
</reference>

Consulte também este link https://rajeshganjeer.wordpress.com/2014/05/28/varnish-with-magento-terpentine/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top