Sto faticando un po 'durante il tentativo di visualizzare una pagina di errore 404 personalizzata usando il micro-framework Silex Silex.Pagina 404 personalizzata con Silex non sottoposta a rendering in configurazione
Il mio progetto è configurato come segue:
- ottenuto una pagina index.php per l'esecuzione in produzione modalità, il caricamento di un file di configurazione
prod.php
- ottenuto un index_dev.php a correre nella modalità debug. Utilizza anche il file di configurazione
prod.php
, ma alcune impostazioni vengono sovrascritte da un filedev.php
, ad esempio$app['debug']
impostato su true.
Quindi in pratica la configurazione è la stessa.
ho definito un gestore di errori nel modo seguente:
$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);
});
Quando si cerca di accedere a http://localhost:8888/index_dev.php/my-non-existing-page
, ottengo il mio modello 404 reso e visualizzato come previsto.
Quando si tenta di accedere a http://localhost:8888/my-non-existing-page
, il modello 404 non viene visualizzato e viene visualizzata una pagina di errore 404 standard!
Potrebbe essere difficile aiutarmi. Sentiti libero di chiedere maggiori dettagli se necessario. Sono semplicemente disposto a capire meglio cosa sta realmente accadendo qui.
Che aspetto ha il tuo htaccess? – gunnx
Non ho ancora definito un file htaccess. Solo la configurazione globale sul mio server locale (usando MAMP). Pensi ad un setting specifico? Il fatto è che la home page è visualizzata correttamente, il problema è in realtà il gestore degli errori che non visualizza la pagina 404 personalizzata sulla configurazione "prod". –
Mi sarei aspettato che tu avessi un file htaccess. Ecco una base che uso con i progetti Silex. RewriteEngine On RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^index.php [L, QSA] – gunnx