我有两个主题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布局中,还有其他几个块正在以这种方式设置模板,但我对这些其他块没有问题。