我最近与一位开发人员交谈,他说即使使用默认安装,也没有 magento CE 整页缓存可以完美运行。
我的经验是一样的。
如果你使用 aoe_static 的 awesome 模块和 phoenix 的全页缓存和 varnish 模块,你会接近的。
使用 aoe_static 模块缓存是在每个动作的基础上完成的,这对我来说似乎是明智的。打孔是通过布局 xml 应用的占位符和通过不会被缓存的 ajax 调用请求的动态块来完成的。cookie 也通过此调用设置。他提供了一个默认的 vcl,它适用于 varnish 2(我从未检查过),并且可以很容易地更改为 varnish 3。
phoenix 模块很好地处理了缓存失效。您可以在模块的控制文件夹中看到方法。这会在产品或类别更改时处理缓存失效,并使产品页面和类别页面都失效。但是,分层导航生成的 url 可能会被缓存(取决于您的 vcl)。这些并没有失效,所以要小心。
在我在生产站点上使用这些模块之前,我真的很想知道这些模块是否存在任何其他问题。如果有人能指出我的问题,我很乐意尝试发布解决方案。
但是对于分层导航 url,需要一个模型来记录生成的带有类别 id 的 url。我想拥有一个 2 列模型(url 和类别)会很简单,然后缓存失效需要检查模型并使额外的 url 失效。这应该在主类别 url 完成的同时完成。听起来还不错。如果有人得到我非常简短的解释,请在我浪费时间之前告知我是否遗漏了什么。
我宁愿在一些社区帮助(或领导更有经验的人)的帮助下创建一个开源项目,至少在默认的 1.7 安装中具有(当之无愧的)可靠性声誉。我认为最明智的做法是创建一个包含或记录所有边缘案例(对于默认的 1.7 安装)的模块。
有谁知道如何执行这样的任务?如果有更多的社区支持使用 apc 或 memcached 执行此操作,那么对于更广泛的托管可用性可能更明智。逻辑或开发时间不会有太大变化。
这可以扩展到涵盖应该牢记的块的会话缓存,但我认为关注可靠的整页缓存应该是优先事项。
您还可以在 vcl 中检测设备。这可以添加到想要移动版本的商店https://github.com/varnish/varnish-devicedetect/blob/master/devicedetect.vcl
我已经为这个项目创建了一个电子邮件,所以如果你想参与它是“magefpc gmail com”。任何有 magento、git 和调试经验的人都会受到欢迎。
谢谢