0

我们有一个针对移动设备的设计例外,它加载了不同的 JS、布局、CSS 和图像文件。

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

我认为这是由于head.phtml被缓存。

从 FPC 中排除 head.phtml 是要走的路吗?还是有别的东西在起作用?

如果是先验,最好的方法是什么?创建一个自定义模块cache.xml,并从 ? 模仿 cache.xml Enterprise/PageCache

这是 Magento EE 1.11。

4

1 回答 1

1

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

我在这里写过关于基于每个控制器禁用缓存的博客。您目前可能会使用相同的方法,除非使用不同的“如果”条件。

我在哪里检查:

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。

于 2012-05-31T01:41:29.523 回答