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

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

  •  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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top