Как запретить скипидару кэшировать мой блок "заголовок" и использовать только кэш страниц?


В моем 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.

Author: Victor Sergienko, 2015-08-24

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>
 2
Author: Victor Sergienko, 2015-08-24 19:11:44
<reference name="header">
 <action method="setEsiOptions">
    <params>
        <access>private</access>
    </params>
 </action>
</reference>

Также, пожалуйста, перейдите по этой ссылке https://rajeshganjeer.wordpress.com/2014/05/28/varnish-with-magento-terpentine/

 1
Author: Prashant Valanda, 2015-08-24 16:26:51