Magento Session 文件存储需要刷新

Magento Session file storage needing refresh

我已将商店移至不支持内存缓存的新服务器,我已退回到写入文件系统。当用户第一次访问并将商品放入购物车时,没有任何反应,它将他们重定向到购物车页面,该页面声明未添加任何商品。

下次用户尝试将产品添加到购物车时,该产品将可见,但有时需要刷新才能看到。从购物车中删除商品时也会发生同样的情况,迷你购物车会实时反映。似乎是写入过程在读取之前未完成的问题?

var/sessions 文件夹有 0777 用于测试。

这是一个常见问题吗?

有以下文件存储

<session_save><![CDATA[files]]></session_save>
<session_cache_limiter><![CDATA[]]></session_cache_limiter>

以前使用内存缓存时看起来像

<session_save><![CDATA[memcache]]></session_save>
<session_save_path><![CDATA[unix:///var/tmp/memcached.sess.newdomain.co.nz_sessions.sock?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path>
<session_cache_limiter><![CDATA[]]></session_cache_limiter>

听起来你需要做更多的研究才能在这里得到答案。您描述的行为听起来更像是清漆或整页缓存问题。在您确切知道发生了什么之前,这里或 Magento Stack Exchange 的人们将只能猜测真正的问题是什么,而且他们不太可能提供帮助。

具体来说,我会寻找

  • 浏览时在前端更改会话 ID。
  • 不正确的表单键阻止将项目添加到购物车
  • 检查 实际会话文件以查看是否已将购物车项目添加到您认为应该添加到的会话中

一旦您更好地理解了问题的机制,这里的其他程序员可能会帮助您(或者,您可能会帮助自己)

祝你好运!

所以在调试了每一个可能的缓存之后,它实际上证明是浏览器缓存了该网站,每个访问该网站的人都会发生这种情况,为什么我仍然不知道。

我在 .htaccess 中添加了以下内容,这似乎解决了问题

<FilesMatch "\.(html|htm|js|css|php)>
    FileETag None
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>