gpt4 book ai didi

magento 开源整页缓存

转载 作者:行者123 更新时间:2023-12-02 02:10:24 24 4
gpt4 key购买 nike

我最近与一位开发人员交谈,他说即使使用默认安装,也没有 magento CE 完整页面缓存可以完美运行。

我的经历是一样的。

如果您使用 aoe_static 的 awesome 模块和 phoenix 的整页缓存与 varnish 模块,您将接近。

使用 aoe_static 模块缓存是在每个 Action 的基础上完成的,这对我来说似乎很明智。打洞是通过布局 xml 应用的占位符和通过不会缓存的 ajax 调用请求的动态 block 完成的。 cookie 也通过此调用设置。他提供了一个默认的 vcl,它适用于 varnish 2(我从未检查过)并且可以很容易地更改为 varnish 3。

缓存失效由 phoenix 模块处理得很好。您可以在模块的控制文件夹中看到方法。这会在产品或类别更改时处理缓存失效,并使产品页面和类别页面都无效。然而,分层导航生成的 url 可能会被缓存(取决于你的 vcl)。这些都没有失效,所以要小心。

在我将它们用于生产站点之前,我真的很想知道这些模块是否存在任何其他问题。如果有人能指出我的问题,我很乐意尝试并发布解决方案。

但对于分层导航 url,需要一个模型来记录生成的带有类别 ID 的 url。我想拥有一个 2 列模型(url 和类别)会很简单,然后缓存失效将需要检查模型并使额外的 url 失效。这应该在主类别 url 完成的同时完成。听起来还不错。如果有人得到我非常简短的解释,请在我浪费时间之前告诉我是否遗漏了什么。

我宁愿在一些社区帮助下(或更有经验的领导者)创建一个开源项目,至少在默认 1.7 安装中具有(应得的)可靠性声誉。我认为最明智的做法是创建一个包含或记录所有边缘情况(对于默认 1.7 安装)的模块。

有人知道如何执行这样的任务吗?如果有更多的社区支持使用 apc 或 memcached 执行此操作,那么对于更广泛的托管可用性来说可能更明智。逻辑或开发时间不会有太大变化。

这可以扩展到涵盖应该牢记的 block 的 session 缓存,但我认为应该优先考虑可靠的全页缓存。

您还可以在 vcl 中检测设备。这可以添加到需要移动版的商店https://github.com/varnish/varnish-devicedetect/blob/master/devicedetect.vcl

我已经为这个项目创建了一个电子邮件,所以如果你想参与其中,那就是“magefpc gmail com”。欢迎任何有 magento、git 和调试经验的人。

谢谢

最佳答案

1 您可能遇到的 aoe_static 问题是,当前扩展程序不记录产品,因此后端中有关已查看产品的统计信息不会更新。这是最近作为 TODO 注释添加到 github 中的。

varnish 和 magento 缓存的问题是,magento 缓存部分页面、 block ,而 varnish 确实缓存整个页面。因此,即使 phoenix 解决方案有观察员到位并在产品/类别更新时相应地重置清漆,您在 magento 中仍然有必须重置的 block 。 aoe_static 试图解决这个问题,但它只对页面上的可见 block 有效。但 magento 的其他部分,如分层导航,也可能在产品/类别更新时在内部重置,但在 varnish 中不会重置。有2个解决方案。要么在产品/类别更新后在前端识别 magento 的每个部分,然后对其应用 aoe_static 解决方案。这意味着您必须通过 ajax 加载分层导航。或者第二种解决方案是,在 phoenix 扩展中添加更多逻辑以使更多清漆页面无效。

我有几个自定义扩展(显示产品的页面),并且我构建逻辑以在每次更新产品/类别时使这些扩展无效。现在我正在研究搜索,因为它也需要失效,但复杂的部分是解决 block 和缓存失效逻辑。

总的来说,适当的缓存失效是 Web 开发中最困难的部分之一。

关于magento 开源整页缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com