Как запретить скипидару кэшировать мой блок "заголовок" и использовать только кэш страниц?
В моем header.phtml
у меня есть HTML-код для главной страницы (тег H1
) при условии $this->getIsHomePage()
. Мне нужно, чтобы это H1
появлялось только на первой странице.
Проблема в том, что под скипидаром этот тег H1
появляется на каждой странице. Я полагаю, это потому, что Скипидар кэширует блок для всего сайта.
По умолчанию turpentine_esi.xml
имеет следующую конфигурацию для блока header
:
<!--
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>
У меня нет информации для входа в шаблон заголовка, поэтому я считаю, что могу просто удалить блок header
из конфигурации (или, скорее, переопределяет его в local.xml
).
Решение, которое я могу придумать, таково: вообще не кэшируйте блок header
в скипидаре, кэшируйте его в полном HTML-формате страницы. Поэтому я удалил этот кусок из turpentine_esi.xml
.
Проблема в: блок H1 по-прежнему отображается на всех страницах.
Я перезапустил varnish, php5-fpm, физически удалил var/cache
Magento, сбросил блоки, блоки ESI и кэш HTML страницы в admin... и я все еще вижу неправильную версию шаблона заголовка, с H1
на каждой странице.
Другим способом я попытался изменить параметры кэширования header
на public
- это тоже не помогло:
<reference name="header">
<action method="setEsiOptions">
<params>
<access>public</access>
</params>
</action>
</reference>
Я использую Magento 1.9.0.1.
2 answers
В конце концов, мне нужно было переопределить (удалить) блок header
из turpentine_esi.xml
в app/design/frontend/base/default/layout/local.xml
. Мой 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>
<reference name="header">
<action method="setEsiOptions">
<params>
<access>private</access>
</params>
</action>
</reference>
Также, пожалуйста, перейдите по этой ссылке https://rajeshganjeer.wordpress.com/2014/05/28/varnish-with-magento-terpentine/