Magento 1.x企业版再带了FPC整页缓存这个插件,但是这个插件有些坑。
1、开启移动端检测网站运行效率很低,这个功能拖速度,所以我一直没有用这个功能,移动端现在没不是非得在服务端区分,前端解决吧。
2、cms里同一个类型的block内容不同会被统一缓存,你永远只能看到一个,今天要说的就是这个问题。
问题如下,我在cmd里面分别发了这样2个block,
{{widget type="ipbanners/view" group_code="customize_en" template="ipbanners/cat.phtml" }}
{{widget type="ipbanners/view" group_code="rings_en" template="ipbanners/cat.phtml" }}
然后在两个不同的分类页里面分别去调用它们
然后在开启缓存的情况下问题就出现了,这2个分类页的banner都一样了;
解法一:很傻的一种办法,就是把页面模版cat.phtml复制一个改成别的名字,再引用。这样做很low,后期也无法维护
解法二:修改FPC的设置:
编辑app/code/local/Mirasvit/Fpc/etc/cache.xml在container节点里面添加一段自定义exclude指令:
<ipbanners_block>
<block>ipbanners/view</block>
<container>Mirasvit_Fpc_Model_Container_Base</container>
<template>ipbanners/cat.phtml</template>
<set_id>66</set_id>
<replacer_tag_begin><![CDATA[<!-- listbanner_exclude_begin -->]]></replacer_tag_begin>
<replacer_tag_end><![CDATA[<!-- listbanner_exclude_end -->]]></replacer_tag_end>
<depends></depends>
</ipbanners_block>
然后回到cms里面修改代码如下:
<!-- listbanner_exclude_begin -->
{{widget type="ipbanners/view" group_code="rings_en" template="ipbanners/cat.phtml" }}
<!-- listbanner_exclude_end -->
这样这个block就不会被FPC缓存。
最后刷新cahche即可。
其实写到这里,坑点一理论上是可以通过这种办法来解决的,后面在折腾吧。