Magento EE 1.11.1,移动主题的全页缓存问题?

时间:2012-09-13 11:34:04

标签: magento caching

我经历了很多论坛,但我无法解决Magento EE 1.11版本中的FPC问题。当我浏览移动主题时,由于FPC,它取而代之的是网络主题。如果我禁用FPC,性能将下降。

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

主题未用作FPC uri的一部分,因此每个包只有一个缓存。

我写了一个小扩展来解决这个问题,你可以在Github上抓住它。

https://github.com/benjy14/MobileFpcFix

答案 1 :(得分:1)

我感觉Enterprise / PageCache中的设计异常支持在级别工作,而不是主题级别。请查看app / code / core / Enterprise / PageCache / Model / Observer.php中引用设计异常的代码。我的第一个建议是联系EE支持,也许他们可以提供适当的解决方案或补丁。或者,您可以通过重写enterprise_pagecache / processor来修改缓存密钥机制:

public function prepareCacheId($id)
{
    $package         = Mage::getDesign()->getPackageName();
    $templateTheme   = Mage::getDesign()->getTheme('template');
    $id              = $id.'_'.$package.'_'.$templateTheme;
    return parent::prepareCacheId($id);
}

答案 2 :(得分:1)

一个简单的解决方案,不需要修补代码:

使用与themes-section中相同的regex-expression将一个例外添加到包部分中,并将其链接到与"当前包名称"完全相同的包名称。设置为。

<强> Prereqs:
主题级别的每个部分只有一个例外,例如iPhone|iPad -> iphone
(而不是iPhone -> iphone + iPad -> iphone

解释原因:
企业页面缓存在生成cacheid时会考虑包异常 但它不会检查包装名称是否相同!
因此,即使异常包与main相同,也会生成不同的cacheid,并且由于themes部分中的正则表达式异常相同,因此它们将使用新的chacheid存储在整页缓存中。

示例: 在&#34;企业&#34;包,有2个主题&#34;默认&#34;和&#34; iphone&#34;。
你希望运行主题&#34; iphone&#34;通过添加例外iPhone|iPad 对于&#34;模板&#34;,&#34;皮肤&#34;和&#34;布局&#34;在&#34;主题&#34;小节。

在&#34;包&#34;小节:
设置&#34;当前包名称&#34;到&#34;企业&#34;。
使用iPhone|iPad - &gt;为包添加例外&#34;企业&#34;

在&#34;主题&#34;小节:
在&#34;模板&#34;中添加例外。与iPhone|iPad -> enterprise
为&#34;皮肤&#34;添加例外;与iPhone|iPad -> enterprise
在&#34;布局&#34;中添加例外。与iPhone|iPad -> enterprise
设置&#34;默认&#34;到&#34;默认&#34;

注意: 在测试之前,不要忘记在系统 - >高速缓存管理中清除FPC。