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

Magento Layout Cache is saving the wrong template name

Magento 有这个名为 Layouts Cache 的缓存(见附图)

我有 2 个主题 A 和 B,我启用了模块 X。在主题 A 中,我在布局文件夹中有 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>

主题 B 没有那个布局文件,所以它使用旧模板,我清除了所有缓存,开始测试主题 A,来到运输方式,一切正常,但后来我切换到主题B 和运输方式没有显示任何内容,我在 app/code/core/Mage/Core/Block/Template.php 中查看,发现 checkout_onepage_shippingmethod 的模板名称设置为 magentomod/X/checkout/onepage/shipping_method/available.phtml,这是主题 A 中 X 模块的自定义模板集,但是我并没有在主题B中设置,所以这个模板名肯定是被上面的magento缓存缓存过了。我尝试清除缓存,B 将按应有的方式工作。但是我找不到禁用这种行为的方法,我也尝试将禁用缓存添加到布局文件中,但它仍然不能阻止它这样做,并且在 X 布局中还有其他几个块以这种方式设置模板但我在使用其他模块时没有问题。

终于发现是因为有人在布局文件中对特定值使用了setCacheKey