У меня проблема с CodeIgniter, и это то, что, когда изображение не найдено на сервере, создается экземпляр контроллера (помимо того, который вызвал представление).
Я знаю, что все это может показаться странным, так что это код для наблюдения за тем, что я говорю. Я сделал это изменения в чистой версии CI 2.1.0:
Добавьте контроллер, чтобы переопределить страницу ошибки 404, я добавил эту:
// add application/controllers/Errors.php
Class Errors extends CI_Controller {
public function error_404() {
echo 'error';
}
}
// change routes.php
$route['404_override'] = 'Errors/error_404';
Используйте контроллер, который не является контроллером по умолчанию с несуществующим изображением, я использовал это:
// add application/controllers/Foo.php
Class Foo extends CI_Controller {
public function index() {
echo '<img src="doesntexist.png" />';
}
}
Я не мог найти другой способ его отладки, поэтому я создал журнал для записи событий в CodeIgniter.php:
// add on CodeIgniter.php line 356
$path = 'log.txt'; //Place log where you can find it
$file = fopen($path, 'a');
fwrite($file, "Calling method {$class}/{$method} with request {$_SERVER['REQUEST_URI']}\r\n");
fclose($file);
При этом журнал, который генерирует посещение индексной функции, выглядит следующим образом:
Calling method Foo/index with request /test/index.php/Foo
Calling method Errors/error_404 with request /test/index.php/doesntexist.png
Какая у меня проблема, создан экземпляр класса Error.