Это продолжение вопроса о том, как отлаживать: заголовок уже отправлен и 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);
}
Хотя это не оказывает никакого влияния на магазин, я бы не стал воспринимать это как «доброкачественную ошибку» (поскольку Microsoft любит называть вещи, которые они не могут исправить / исправить!). Я думаю, что мы могли бы просто изменить canSendHeader () в lib / Zend / Controller / Response / Abstract.php, чтобы не выдавать ошибку, если $ file это gd2.php, но это просто неприятный ключ!
То, на что это похоже, находится в некоторый момент перед тем, как canSendHeaders вызывается как часть отображения изображений CMS на приборной панели, либо $ throw или $ this-> headersSentThrowsException должны быть установлены в false, чтобы это не создавало исключение.
Любые идеи? Или это то, чему владельцы Magento научились жить !?