如何在没有自定义模块的情况下打孔全页缓存


18

我们的整个页面缓存似乎基于会话。如果我打开带有chrome的隐身窗口并访问其中一个页面,它将预热缓存,并且第二页的加载要快得多,但是,如果我关闭该窗口并打开一个新的隐身窗口,则该页面不再位于完整的页面缓存,必须再次进行预热。我们认为这是因为侧边栏向用户显示了购物车中的内容。

我已经将该html移到了一个新的phtml文件,将布局xml块摆平了,现在我正在处理cache.xml文件。

我为cache.xml找到的所有示例都引用了模块,但是,我没有为布局xml块使用模块,而是使用core / template。

有没有机会有人可以阐明不需要模块和/或模型的xml缓存块?


您使用的是Magento Enterprise全页缓存还是使用Varnish之类的第三方工具?如果您有可见的购物车,则页面将使用该会话作为缓存键的一部分。隐身模式会在关闭后删除所有cookie,因此您可以在再次打开页面后获得新会话。打孔有问题。Fabrizio上有一篇很好的文章:fabrizio-branca.de/…–
Tim Reynolds

Answers:


6

如果没有包含用于包含占位符定义的cache.xml的模块,则无法在Enterprise Edition中创建占位符。因此,如果需要在全页缓存中有一个自定义孔,则需要创建一个模块来定义它。

内置的侧边栏购物车确实没有占位符。该占位符根据用户会话标记它的缓存内容。页面的主要内容将从已被其他用户预热的缓存中加载,只有此“漏洞”才需要根据每个用户进行填充和生成。您还应注意,当用户的购物车内容发生更改时,此漏洞的内容将重新生成并缓存。

请注意,以上假设是您所指的确实是Enterprise Edition FPC和打孔,而不是Varnish。如果您使用的是Varnish(配置正确),则在首次访问Magento时不会提供缓存中的页面。这是因为第一次访问时,用户的请求必须传递给Magento,以便应用程序可以为他们生成会话。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.