我在 footer.phtml 中设置 Magento session 变量,如下所示
<?php Mage::getSingleton('core/session')->setPopup('1'); ?>
然后我通过在 footer.phtml 的接下来几行中编写的 JavaScript 来访问它。
var val = <?php echo Mage::getSingleton('core/session')->getPopup()?>;
但是当我尝试从我的网站主页访问此 session 变量时,它显示为空白。表示未设置。但如果我转到另一个页面,我可以看到 session 变量已设置为我想要的值。 然后,如果我返回主页,再次变量为空白(未设置)。
知道这种有趣行为的原因是什么吗?
注意:我在本地代码空间中覆盖了我的 Footer.php( block 文件),并注释掉了承包商中的所有兑现内容。这是为了确保 footer.phtml 不会被缓存。
但是我们还启用了全页缓存,不确定这会导致问题,如果是这样,如何在不禁用全页缓存的情况下修复该问题
最佳答案
通过将以下两行添加到 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');
}
关于php - Magento session /缓存行为非常奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16804982/