以下に示すように、footer.phtml 内で Magento セッション変数を設定しています。
<?php Mage::getSingleton('core/session')->setPopup('1'); ?>
次に、footer.phtml の次の数行に記述された JavaScript を介してアクセスします。
var val = <?php echo Mage::getSingleton('core/session')->getPopup()?>;
しかし、Web サイトのホームページからこのセッション変数にアクセスしようとすると、空白として表示されます。設定されていないことを意味します。しかし、別のページに移動すると、セッション変数が目的の値に設定されていることがわかります。次に、ホームページに戻ると、変数は再び空白(設定されていません)になります。
このおかしな行動の理由は何だと思いますか?
注 : ローカル コード スペースで Footer.php (ブロック ファイル) を上書きし、請負業者のすべてのキャッシュ処理をコメント アウトします。これは、footer.phtml がキャッシュされないようにするためです。
ただし、フルページキャッシュも有効にしていますが、これが問題の原因かどうかはわかりません。もしそうなら、フルページキャッシュを無効にせずにそれを修正する方法