Como impedir que a terebintina armazene em cache meu bloco de “cabeçalho” e use apenas o cache de página?
-
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.
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/