Magento整页缓存&设计例外

时间:2012-05-30 22:39:54

标签: magento

我们有移动设备的设计例外,它会加载不同的JS,布局,CSS和图像文件。

关闭FPC,它完美无缺。但是,当它打开时,每个人都会获得常规站点(没有例外)。

我认为这是因为head.phtml被缓存了。

从FPC中排除head.phtml的方式是什么?或者是其他什么在玩耍?

如果是先前的,那么最好的方法是什么?使用cache.xml创建自定义模块,并模仿Enterprise/PageCache中的cache.xml?

这是Magento EE 1.11。

2 个答案:

答案 0 :(得分:1)

如果可以避免,请不要绕过任何块的缓存。它将改善您在日志运行中的用户体验。但是,有几种方法可以解决这个问题。

我发布了here关于在每个控制器的基础上禁用缓存的博客。 您可能暂时使用相同的方法,除非使用不同的“if”条件。

我在哪里检查:

if ($action instanceof <controller_class_name>) {

您可以轻松使用:

if ($user_is_mobile == true) {

这样做只会让您的移动用户在此期间工作。实际上,答案不是禁用或绕过缓存,而是使用相同的方法来监听页面请求并为移动和非移动请求分配不同的布局句柄。然后,每个布局句柄都会相应地缓存。

了解如何在布局更新中使用句柄。从记忆中它是这样的:

Mage::app()->getLayout()->getUpdate()->addHandle("mobile");

然后在page.xml中添加一个名为mobile的新节点,类似于

<mobile>
    <reference name="root">
        <remove name="mainHead" />
        <block type="core/template" name="mobileHead" />
    </reference>
</mobile>

或者那些东西。这是疯狂的未经测试,但我希望你明白这一点。

否则,您可以根据屏幕分辨率使用响应式CSS。

答案 1 :(得分:1)

似乎FPC仅在包级别上使用1.11中的设计异常。在FPC上设置主题级别的异常将不会令人遗憾:( 你有没有找到解决办法?