这是有关如何调试的问题的后续内容:HEADER ALREADY SENT和GD2。具体来说,如何解决以下错误(请注意,第一行已使用以前的调试建议来添加,以跟踪源):
2014-02-04T14:26:06+00:00 DEBUG (7): Cannot send headers; headers already sent in /home/.../lib/Varien/Image/Adapter/Gd2.php, line 133
2014-02-05T16:14:32+00:00 DEBUG (7): HEADERS ALREADY SENT: < pre >
[0] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:52
[1] /home/.../lib/Zend/Controller/Response/Abstract.php:766
[2] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:83
[3] /home/.../app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /home/.../app/code/core/Mage/Core/Model/App.php:354
[5] /home/.../app/Mage.php:683
[6] /home/.../public_html/index.php:87
</ pre >
这个问题是关于如何调试这个问题的。这个问题是关于如何解决它。根据我对该问题的“答案”,并在一个普通的Magento安装上进行了进一步的测试,我可以确认这确实是Magento的核心错误(v1.7.0.2)。
使用标准的Magento页面/块图像管理器仅管理页面或静态块上的图像会导致这些日志。要重现,请打开页面上有图像。页面上每个图像将记录其中之一。打开图像管理器并查看上传的图像-每个显示的图像都会有另一个。
问题似乎出在此功能上,从我的阅读中可以肯定,每当获取CMS图像以在仪表板中显示时,该功能都会导致此错误。
public function display()
{
header("Content-type: ".$this->getMimeType());
call_user_func($this->_getCallback('output'), $this->_imageHandler);
}
尽管它似乎对商店没有任何影响,但我不希望将其视为“良性错误”(因为微软喜欢称他们无法正确/解决问题!)。我想我们可以只修改lib / Zend / Controller / Response / Abstract.php中的canSendHeader(),如果$ file是gd2.php则不会抛出错误,但这只是一个讨厌的消息!
看起来是在仪表板中显示CMS图像之前调用canSendHeaders的某个时刻,应该将$ throw或$ this-> headersSentThrowsException设置为false,这样才不会生成异常。
有任何想法吗?还是这是Magento业主已经学会与之共存的东西!