Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento:缩小HTML输出?_Html_Templates_Magento_Minify - Fatal编程技术网

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()

magento中是否有输出所有html的文件


我想缩小所有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