Afficher une page 404 si l'itinéraire n'est pas trouvé dans Laravel 5.1
Je suis à essayer de comprendre pour afficher la page d'erreur 404 non trouvé si une route n'est pas trouvé. J'ai suivi de nombreux tutoriels, mais il ne fonctionne pas.
J'ai 404.blade.php
dans \laravel\resources\views\errors
Aussi dans handler.php
public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException) {
//redirect to form an example of how i handle mine
return redirect($request->fullUrl())->with(
'csrf_error',
"Opps! Seems you couldn't submit form for a longtime. Please try again"
);
}
/*if ($e instanceof CustomException) {
return response()->view('errors.404', [], 500);
}*/
if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
return response(view('error.404'), 404);
return parent::render($request, $e);
}
Si je saisis mal l'URL dans le navigateur, il renvoie une page vide. J'ai
'debug' => env('APP_DEBUG', true),
dans app.php.
Quelqu'un peut m'aider comment faire pour afficher une page d'erreur 404 si la route n'est pas trouvé? Merci.
source d'informationauteur vision
Vous devez vous connecter pour publier un commentaire.
Que j'ai reçu 500 erreurs au lieu de les erreurs 404. J'ai résolu le problème comme ceci:
Dans le app/Exceptions/Handler.php fichier, il y a un rendre fonction.
Remplacer la fonction avec cette fonction:
Vous pouvez ensuite utiliser les vues que vous enregistrez dans views/errors/404.blade.php et ainsi de suite.
@testeur.Votre problème a déjà été résolu, essayez la commande ci-dessous dans compositeur:
Puis essayez une fois de plus avec un inconnu URL. Parce que j'ai aussi été confronté au même erreur avant.
> La méthode abort immédiatement déclencher une exception qui sera rendu par le gestionnaire d'exception. En option, vous pouvez fournir le texte de la réponse:
est votre app_debug défini à true? si c'est le cas, Laravel va jeter l'erreur avec la trace à des fins de débogage, si vous modifiez la valeur à false, Laravel affichera la page 404 par défaut dans les erreurs dossier. Cela étant dit, vous pouvez choisir d'utiliser interrompre à tout moment vous voulez. au niveau du contrôleur ou au niveau de la route, il est totalement à vous.
ie
Il n'est pas nécessaire pour vous de vérifier le type d'erreur et manuellement le rendu de la 404 vue. Laravel sait déjà à rendre la vue avec le code d'erreur HTTP jetée (404 = resources/views/errors/404.blade.php). Se débarrasser de la vérification supplémentaire et il devrait fonctionner correctement.
J'utilise la suite dans app/Exceptions/Handler.php (Laravel 5.2):
Et il ressemble à ceci:img
Dans apache, vous pourriez être en mesure de mettre ce code dans .fichier htaccess dans votre répertoire principal et assurez-vous que le changement Directive AllowOverride à tous dans httpd confg fichier