Magento打孔用清漆

时间:2014-05-22 13:15:24

标签: magento varnish hole-punching

我最近在系统(ubuntu)中安装了清漆3.x并将其配置为8080.

现在启用了整页缓存,其工作正常。我只想忽略一些 页面的特定动态块。我怎么能用magento做。我也不是 使用Magentos默认缓存技术,所以我禁用它。还试过模块Terpentine

谢谢&方面

Rajesh Ganjeer

4 个答案:

答案 0 :(得分:6)

我使用

完成了这项工作

在app / design / frontend / XXX / XXX / layout / local.xml文件中的local.xml中试试这个:

<reference name="block name">
    <action method="setEsiOptions">
        <params>
            <access>private</access>
            <flush_events>
                <wishlist_item_save_after/>
                <wishlist_item_delete_after/>
                <sales_quote_save_after/>
                </flush_events>
        </params>
    </action>
</reference>`

<reference name="block name">
    <action method="setEsiOptions">
        <params>
            <access>private</access>
            <ttl>0</ttl>
        </params>
    </action>
</reference>`

<reference name="block name">
<action method="setEsiOptions">
    <params>
        <access>private</access>
        <method>ajax</method>
    </params>
</action>
</reference>`

整个页面将忽略缓存,例如。一页模块checkout_onepage_index

<checkout_onepage_index>
    <turpentine_cache_flag value="0"/>
</checkout_onepage_index>

我使用模块Nexcessnet Turpentine尝试了这个。它的工作原理

在Turpentine安装后供您参考:

应用程序/设计/前端/碱/默认/布局/ turpentine_esi.xml

非常感谢您的反馈。

参考网站:

http://www.magentocommerce.com/magento-connect/turpentine-varnish-cache.html

https://github.com/nexcess/magento-turpentine

谢谢&amp;此致

Rajesh Ganjeer

答案 1 :(得分:1)

答案 2 :(得分:0)

在layout.xml文件中尝试:

 <reference name="block name">
      <action method="setCacheLifetime"><s>null</s></action>
  </reference>

如果要在phtml文件中禁用,则在块名称之后使用false,如下所示:

<?php echo $this->getChildHtml('topLinks',false) ?> 

如果你想从php文件中禁用,那么在特定的Block类中使用这段代码:

public function getCacheLifetime() { return null; } 

希望这会有所帮助。一切顺利!

答案 3 :(得分:0)

使用Turpentine将是最佳选择。

您要查找的具体链接是: https://github.com/nexcess/magento-turpentine/wiki/ESI_Cache_Policy

细节是:

  

如果未指定,则默认ttl有点复杂:如果访问是   private,那么如果方法是ajax,则默认ttl为0(不缓存)   否则使用默认的cookie过期时间。如果是访问权限   全局然后使用默认页面TTL(无论方法如何)。

实施方式如下:

<reference name="block name">
    <action method="setEsiOptions">
        <params>
            <access>private</access>
            <ttl>0</ttl>
        </params>
    </action>
</reference>