Как запретить скипидару кэшировать мой блок “заголовок” и использовать только кэш страницы?
-
13-12-2019 - |
Вопрос
В моем header.phtml
, у меня есть HTML-код, специфичный для главной страницы (H1
тег) под $this->getIsHomePage()
состояние.Мне нужно это H1
появляться только на первой странице.
Проблема в том, что:под скипидаром это H1
тег появляется на каждой странице.Я полагаю, это потому, что Turpentine кэширует блок для всего сайта.
По умолчанию, 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, физически удалил Magento's var/cache
, сброшенные блоки, блоки ESI и HTML-кэш страницы в admin...и я все еще вижу неправильную версию шаблона заголовка, с H1
на каждой странице.
Другим способом я попытался изменить header
параметры кэширования для public
- это тоже не помогло:
<reference name="header">
<action method="setEsiOptions">
<params>
<access>public</access>
</params>
</action>
</reference>
Я использую Magento 1.9.0.1.
Решение
В конце концов, мне нужно было переопределить (удалить) 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/