代码之家  ›  专栏  ›  技术社区  ›  Long M K Nguyễn

Magento布局缓存正在保存错误的模板名称

  •  0
  • Long M K Nguyễn  · 技术社区  · 7 年前

    enter image description here 我有两个主题A和B,我启用了模块X。在主题A中,layouts文件夹中有X.xml,它引用了发货方法的根,并像这样更改模板

    <checkout_onepage_shippingmethod>
        <reference name='root'>
            <action method='setTemplate' ifconfig="X/X_config/enabled"><template>magentomod/X/checkout/onepage/shipping_method/available.phtml</template></action>
        </reference>
    </checkout_onepage_shippingmethod>
    

    Theme B没有那个布局文件,所以它使用的是旧模板,我清除了所有缓存,开始测试Theme A,来到shipping method,一切都很好,但后来我切换到Theme B,shipping method没有显示任何内容,我检查了内部 app/code/core/Mage/Core/Block/Template.php magentomod/X/checkout/onepage/shipping_method/available.phtml 这是为主题A中的X模块设置的自定义模板,但我没有在主题B中设置它,因此该模板名称必须由上面的magento缓存缓存。我尝试清除缓存,B将按它应该的方式工作。但我找不到禁用这种行为的方法,我也尝试过向布局文件中添加禁用缓存,但它仍然无法阻止它这样做,在X布局中,还有其他几个块正在以这种方式设置模板,但我对这些其他块没有问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Long M K Nguyễn    7 年前

    最后发现这是因为有人在布局文件中使用了setCacheKey来指定值