Проблема с кэшем Magento - PullRequest
       5

Проблема с кэшем Magento

1 голос
/ 19 августа 2011

У меня очень странная проблема с кешем. У меня есть один магазин с двумя языками. Когда я меняю язык с немецкого на английский, он работает с первого раза. Поэтому, когда я нахожусь на стороне A (немецкий), он переключается на A (английский). Но .... если я изменю страницу или категорию ... например, с A на B и ТОГДА я снова переключаю язык, он перенаправляет меня обратно на A, а не на B.

Это очень странная проблема с кешем. Я деактивировал все параметры кэша, после чего он работает отлично, но я не могу запустить магазин без каких-либо возможностей кэширования:

вот мой магазин: http://www.livewire -clothing.de / packagedetails / Проверьте код страницы. Переключите язык и страницу и снова проверьте код.

Эта часть никогда не меняется:

<select id="select-language" title="Ihre Sprache" onchange="window.location.href=this.value"> 
    <option value="http://www.livewire-clothing.de/merchandise/k.html?band=78&amp;manufacturer=55&amp;size=39&amp;___store=de&amp;___from_store=de" selected="selected">Deutsch</option> 
    <option value="http://www.livewire-clothing.de/merchandise/k.html?___store=en&amp;band=78&amp;manufacturer=55&amp;size=39&amp;___from_store=de">Englisch</option> 
</select> 

Это должен быть кеш. Кто-то получил решение для меня или может помочь мне? Большое спасибо.

1 Ответ

3 голосов
/ 20 августа 2011

Скорее всего, проблема в том, что вы поместили переключатель языка в блок нижнего колонтитула. В блоке нижнего колонтитула в Magento включено кэширование блоков. Если вы посмотрите на Mage_Page_Block_Html_Footer, вы увидите определенный ключ кеша (Magento 1.5):

public function getCacheKeyInfo()
{
    return array(
        'PAGE_FOOTER',
        Mage::app()->getStore()->getId(),
        (int)Mage::app()->getStore()->isCurrentlySecure(),
        Mage::getDesign()->getPackageName(),
        Mage::getDesign()->getTheme('template')
    );
}

Это означает, что выходные данные блока будут кэшироваться в отдельных версиях в зависимости от текущего хранилища, дизайна и т. Д.

Однако ваш переключатель языка напрямую связан с текущей страницей на каждом языке. Когда ссылка отличается для каждой страницы, вывод нижнего колонтитула будет отличаться для каждой страницы. Я бы порекомендовал просто отключить кэширование блоков для блока нижнего колонтитула, переопределив блок и удалив определения кэша, или вместо этого используя блок core / template.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...