当缓存被禁用时, Mage::getSingleton('cms/page')->getIdentifier(); 工作正常,我正在得到 所有页面的正确页面标识符.

但是当缓存启用时,它总是 返回首先加载的页面标识符t。

我在 phtml 文件中调用它。它应该在块类中正常工作吗?

有什么解决办法吗?


更新:

实际上,所有代码都以某种方式被缓存,除非我刷新或禁用缓存,否则我看不到新代码的任何输出。所以这似乎不是这个特定的单例对象的问题。在同一台服务器上,另一个 magento 安装/项目在启用缓存的情况下很好,我可以立即看到更新。我正在调查这个问题。它可能是任何其他设置或带有一些扩展的主题。

有帮助吗?

解决方案

我的整个导航块都被缓存,并且我所做的任何更改根本不会反映在前端,除非缓存被清除。但其他 phtml 文件没问题。

在我的导航块类中,我添加了以下代码,它现在按预期工作:

protected function _construct()
{
    parent::_construct();

    $this->addData(array(   'cache_lifetime' => null ));
}

以下链接帮助我解决了该问题:https://stackoverflow.com/a/25032002/1302297

许可以下: CC-BY-SA归因
scroll top