Magento缓存问题

时间:2011-08-19 14:56:10

标签: caching magento

我有一个非常奇怪的缓存问题。 我有一家商店有两种语言。当我将语言从德语改为英语时,它是第一次工作。因此当我在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 个答案:

答案 0 :(得分:3)

问题很可能是您将语言切换器放在页脚块中。 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')
    );
}

这意味着块输出将以不同的版本缓存,具体取决于当前的存储,设计等。

但是,您的语言切换器会直接链接到每种语言的当前页面。当每个页面的链接不同时,每个页面的页脚输出将不同。我建议只需通过覆盖块并删除缓存定义或使用核心/模板块来禁用页脚块的块缓存。