首页 > 解决方案 > Http 异常 Laravel 5.6

问题描述

我有一个http异常的问题。实际上,我创建的 404 视图并没有出现。仅显示默认视图(当我在 url 中写入时http://127.0.0.1:8000/fr/sdfsdf)。

视图默认为: 在此处输入图像描述

我的视图显示图像、标题和错误原因、视图路径: resources/views/errors/404.blade.php:

@extends('layout')
@section('title',trans('errors.404'))
@section('body')
<div class="container-fluid">
    <div class="containe center_vertical_errors">
        <div class="row">
            <div class="col-xs-12 text-center" >
                <h1 class="text-uppercase">{{trans('errors.404')}}</h1>
            </div>
           <div class="col-xs-12 logo-error">
               <img src="{{asset('image/logo.png')}}" alt="logo" width="300" height="300" title="logo" class="img-responsive img-centre-horizontal"/>
           </div>
            <div class="col-xs-12 text-center reason-error" >
                <p class="text-uppercase">{{trans('errors.reason404')}}</p>
            </div>
        </div>
    </div>
</div>
@stop

处理程序的代码:

...
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class Handler extends ExceptionHandler
{
...
public function render($request, Exception $exception){

        if ($this->isHttpException($exception))
        {
            if($exception instanceof NotFoundHttpException)
            {
                return response()->view('errors.404', [], 404);
            }
        }

        return parent::render($request, $exception);
    }
} 

路线代码:

  Route::get('/', function () {return view('home/home');})->name('home');
    Route::get(trans('routes.news'),'PublicationController@index')->name('news');
    Route::post(trans('routes.news'),'PublicationController@index')->name('news');
    Route::get('/{slug}/{id}','PublicationController@show')->name('showNew');

    Route::get(trans('routes.team'), function () {
        return view('equipe/equipe');
    })->name('team');

    Route::get('lang/{language}', 'LanguageController@switchLang')->name('lang.switch');
 Route::put(trans('routes.changeDefaul'),'UtilisateurController@changeDefaul')->name('changeDefaul');
    Route::get(trans('routes.postNew'),'ActualiteController@create')->name('postNew');
    Route::post(trans('routes.postNew'),'ActualiteController@store')->name('postNew');

    Auth::routes();
    Route::get('/Utilisateur','UtilisateurController@index')->name('user');  
    Route::get(trans('routes.pdf'), 'PDFController@index')->name('pdf');
    Route::get(trans('routes.displayNew'),'ActualiteController@index')->name('displayNew');
    Route::put(trans('routes.displayOneNew'),'ActualiteController@get')->name('displayOneNew');
    Route::put('/actualite/suppressionActu','ActualiteController@delete')->name('actuSuppr');
    Route::put(trans('routes.updateActuality'),'ActualiteController@publier')->name('updateActuality');
    Route::post('actualite/update','ActualiteController@update')->name('updateNew');

    Route::get('/admin','AdminController@index')->name('adminIndex');
    Route::get('/fileManager','FileManagerController@index')->name('fileManager');

感谢大家的帮助

我进行了研究以找到解决方案,但我找不到任何东西。

标签: laravellaravel-5laravel-5.6httpexception

解决方案


实际路径必须是resources/views/errors/404.blade.php. 不确定这是否是您的错字,但您缺少views目录。

同样对于默认的 5.6 行为,您可以将渲染函数保留app/Exceptions/Handler.php为:

public function render($request, Exception $exception)
{
    return parent::render($request, $exception);
}

推荐阅读