【问题标题】:Magento remove block only works with cache disabledMagento 删除块仅适用于禁用缓存
【发布时间】:2012-04-13 10:17:18
【问题描述】:

我有一个静态块,它被添加到每一页的页脚引用中。我的主页是一个 CMS 页面,我在页面布局更新 XML 中添加了代码以从该页面中删除块。

这是添加到所有页面页脚的方式:

在page.xml里面

<reference name="footer">
  <block type="cms/block" name="page_cta" before="-">
    <action method="setBlockId"><block_id>page_cta</block_id></action>
  </block>
</reference>

我的主页布局中的代码更新 xml 以删除块:

<reference name="footer">
  <remove name="page_cta" />
</reference>

该块不应显示在主页上,而应显示在所有其他页面上。这可以正常工作,但前提是缓存被禁用。似乎发生的情况是启用了缓存,然后我查看主页并删除了该块,但随后它也在其他所有页面上被删除。

谁能解释一下为什么启用缓存后这不起作用?

【问题讨论】:

  • 可能是当您启用缓存时,它会从先前存储的缓存副本中提取。启用缓存后,请务必刷新它。
  • @seanbreeden 尝试在启用缓存后刷新缓存,但没有区别。不过谢谢

标签: magento


【解决方案1】:

禁用特定块的缓存,如下所述:

<reference name="footer">
       <action method="unsetData"><key>cache_lifetime</key></action>
       <action method="unsetData"><key>cache_tags</key></action>
       <block type="cms/block" name="page_cta" before="-">
           <action method="setBlockId"><block_id>page_cta</block_id></action>
       </block>
   </reference>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2016-07-05
    相关资源
    最近更新 更多