1

我在 footer.phtml 中设置了一个 Magento 会话变量,如下所示

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

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

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

但是当我尝试从我的网站主页访问此会话变量时,它显示为空白。表示未设置。但是如果我转到不同的页面,我可以看到会话变量设置为我想要的值。然后,如果我回到主页,变量再次为空白(未设置)。

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

注意:我在本地代码空间中覆盖了我的 Footer.php(块文件),并注释掉了承包商中的所有兑现内容。这是为了确保 footer.phtml 不会被缓存。

但是我们也启用了整页缓存,不确定这是否会导致问题,如果是这样,如何在不禁用整页缓存的情况下解决该问题

4

1 回答 1

1

通过将以下 2 行添加到app/code/local/Mage/Page/Block/Html/Footer.php

protected function _construct()
{
    //Disabling footer from getting cashed by FPC
    $cache = Mage::app()->getCacheInstance();
    $cache->banUse('full_page');
}
于 2013-05-29T05:55:24.180 回答