Magento:缩小HTML输出?
magento中是否有输出所有html的文件Magento:缩小HTML输出?,html,templates,magento,minify,Html,Templates,Magento,Minify,magento中是否有输出所有html的文件 我想缩小所有html输出。您可以始终使用ob函数在index.php中获取输出,然后根据需要处理内容。但我怀疑它是否会像启用gzip那样提升你的网站,或者减少谷歌的页面速度?这对你来说是透明的+1表示gzip,并以任意方式放气。理想情况下,您希望在缓存输出之前执行缩小操作,以避免过于频繁。我能想到的最好的方法是重写Mage\u Page\u Block\u Html并将以下函数添加到新类中: protected function _toHtml()
我想缩小所有html输出。您可以始终使用ob函数在index.php中获取输出,然后根据需要处理内容。但我怀疑它是否会像启用gzip那样提升你的网站,或者减少谷歌的页面速度?这对你来说是透明的+1表示gzip,并以任意方式放气。理想情况下,您希望在缓存输出之前执行缩小操作,以避免过于频繁。我能想到的最好的方法是重写
Mage\u Page\u Block\u Html
并将以下函数添加到新类中:
protected function _toHtml()
{
$html = parent::_toHtml();
// MINIFY CONTENTS OF $html HERE
return $html;
}
通过这种方式,它对整个页面执行一次操作,然后Magento可以按照通常的方式缓存返回的值。它没有单独在每个块上执行,这可能会降低效率。Magento使用响应对象发送所有输出 将所有输出添加到此对象,然后调用其
sendResponse
方法
如果要更改输出,请在事件之前为http\u response\u send\u设置侦听器
<!-- in your module's config.xml -->
<http_response_send_before>
<observers>
<unique_name>
<type>singleton</type>
<class>group/observer</class>
<method>alterOutput</method>
</unique_name>
</observers>
</http_response_send_before>
如果您感兴趣,将在以下类的sendResponse
方法中调用此事件
app/code/core/Mage/Core/Controller/Response/Http.php
并且输出本身通过以下方法发送:sendsresponse
和outputBody
lib/Zend/Controller/Response/Abstract.php
也许来这里的人会发现这个Magento扩展很有帮助:好问题,+1,但是你想如何缩小HTML?mod_pagespeed就是为这种情况设计的。但是它仍然在每个请求上执行。这是非常正确的,我喜欢利用整个页面的缓存来节省时间。你知道HTML压缩在mod_pagespeed上需要多长时间吗?我不知道这个问题有多重要。因为它是本机代码,所以它必须比脚本版本快。当然还有其他缓存选项,mod_disk_cache和mod_mem_cache,尽管我不确定它们是在mod_pagespeed之后实例化的,还是可以使用反向代理。这些类型的缓存选项通常需要Expires和Variable标头,而Magento没有设置这些标头,因此它们的用途可能会受到限制。基本上我不知道,只有调试配置文件工具可以告诉您。我使用了上面的代码,但它似乎不适用于整页缓存:(@Simon,他说你必须编辑index.php,尽管你可以做任何你不想做的事情,只要你是代码所有者并对任何编辑负责……这正是你的答案所建议的。不,我认为你永远不应该编辑核心。永远不。
lib/Zend/Controller/Response/Abstract.php