Magento Session/ Cache的行为真的很奇怪



我正在页脚内设置Magento会话变量。php如下所示

<?php Mage::getSingleton('core/session')->setPopup('1'); ?>

然后我通过在接下来的几行footer. php中编写的javascript来访问它。

var val = <?php echo Mage::getSingleton('core/session')->getPopup()?>;

但是当我试图从我的网站的主页访问这个会话变量时,它显示为空白。表示未设置。但是如果我转到另一个页面,我可以看到会话变量被设置为我想要的值。然后,如果我回到主页,变量为空白(未设置)。

你知道这种有趣的行为可能是什么原因吗?

注意:我有我的Footer.php(块文件)覆盖在我的本地代码空间,并注释掉所有兑现的东西在承包商。这是为了确保页脚。

但我们也有全页缓存启用,不确定这导致的问题,如果是这样,如何解决这个问题,而不禁用全页缓存

通过向app/code/local/Mage/Page/Block/Html/Footer.php

添加以下2行来解决此问题
protected function _construct()
{
    //Disabling footer from getting cashed by FPC
    $cache = Mage::app()->getCacheInstance();
    $cache->banUse('full_page');
}

最新更新