Я немного борюсь, пытаясь отобразить пользовательскую страницу ошибки 404, используя структуру Silex micro -.
Мой проект настроен следующим образом:
prod.php
prod.php
, но некоторые настройки переопределяются файлом dev.php
, например, для $app['debug']
устанавливается значение true .Так что в основном конфигурация та же.
Я определил обработчик ошибок следующим образом:
$app->error(function (\Exception $e, $code) use ($app) {
// commented for testing purposes
/*if ($app['debug']) {
return;
}*/
if ($code == 404) {
$loader = $app['dataloader'];
$data = array(
'global' => $loader->load('global'),
'common' => $loader->load('common', $app['locale']),
'header' => $loader->load('header', $app['locale']),
'footer' => $loader->load('footer', $app['locale'])
);
return new Response( $app['twig']->render('404.html.twig', array( 'data' => $data )), 404);
}
return new Response('We are sorry, but something went terribly wrong.', $code);
});
При попытке получить доступ к http://localhost:8888/index_dev.php/my-non-existing-page
мой шаблон 404 обрабатывается и отображается, как и ожидалось.
При попытке получить доступ к http://localhost:8888/my-non-existing-page
мой шаблон 404 не отображается, и вместо этого я получаю стандартную страницу ошибки 404!
Может быть трудно мне помочь. Не стесняйтесь спрашивать более подробную информацию, если это необходимо. Я просто хочу лучше понять, что на самом деле здесь происходит.