【问题标题】:Setting Content-Length Header for Magento为 Magento 设置 Content-Length 标头
【发布时间】:2014-06-21 15:00:03
【问题描述】:
我现在正在与一些网站性能问题作斗争,建议之一是禁用chunked encoding。
我们的网站页面不够大,无法使用它,而且开销太大。我对 HTTP 标头不是很熟悉,但我了解到,如果您没有“Content-Length”标头,则会自动设置“Transfer-Encoding: chunked”标头。
有谁知道如何在 Magento 中设置“Content-Length”标头?它需要适用于所有页面以及任何缓存的页面(我们使用 Lightspeed 全页面缓存扩展)。
【问题讨论】:
标签:
php
http
magento
http-headers
magento-1.5
【解决方案1】:
我不能代表 Lightspeed 全页缓存扩展(您需要联系他们的支持来解决您的问题),但由于 magento 有一个通过 index.php 的入口点,您可以破解它并将输出包装在缓冲区中:
ob_start();
# ... run magento here
$buffer = ob_get_clean();
然后设置 content-length 标头:
header(sprintf("Content-Length: %s", strlen($buffer)));
然后发送缓冲区:
echo $buffer;
这可能不适用于您的缓存扩展,或者如果其他扩展破坏了输出缓冲链。