📅  最后修改于: 2023-12-03 15:32:34.257000             🧑  作者: Mango
当用户访问网站上不存在的页面时,将出现404页面。 Laravel 允许您自定义404页面,以便在这种情况下向用户提供更好的用户体验。本文将介绍如何在 Laravel 项目中自定义404页面。
首先,我们需要创建一个自定义的404视图。在 Laravel 项目的 resources/views 目录下创建一个名为 404.blade.php 的文件,并编辑它以显示您喜欢的内容。以下是一个示例模板:
@extends('layouts.app')
@section('content')
<h1> 404 页面未找到</h1>
<p>对不起,我们无法找到您正在查找的页面。请确认您输入的 URL 是否正确,或尝试使用我们的搜索功能。</p>
@endsection
一旦创建了自定义的404视图,我们需要将其与 Laravel 路由关联。打开项目中的 app/Exceptions/Handler.php 文件,找到 render
方法。在此方法中,您将看到默认的 $exception
参数,它将是一个 HttpException
类的实例,例如 NotFoundHttpException
,代表路由不存在。
为了关联自定义的404视图,我们只需要在 render
方法中添加以下代码:
if ($exception instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) {
return response()->view('errors.404', [], 404);
}
此代码检查异常类型是否为 NotFoundHttpException
,如果是,则渲染名为 errors.404
的视图,并返回HTTP状态代码404。
为了使404页面在设计上更吸引人,我们可以添加一些CSS样式。在这里,我将使用Bootstrap样式。首先,将以下内容添加到 404.blade.php文件中:
@push('styles')
<link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
@endpush
@extends('layouts.app')
@section('content')
<div class="container">
<div class="jumbotron">
<h1>404 页面未找到</h1>
<p>对不起,我们无法找到您正在查找的页面。请确认您输入的 URL 是否正确,或尝试使用我们的搜索功能。</p>
<p><a href="/" class="btn btn-primary btn-lg">返回首页</a></p>
</div>
</div>
@endsection
该代码添加了一个Jumbotron组件,其中包含了我们之前创建的404错误消息。您可以添加其他组件以使页面更加吸引人。
自定义404页面可以帮助您提供更好的用户体验,同时向用户提供有用的信息。 Laravel 允许您轻松地创建和关联您自己的404页面。通过按照本文中的步骤完成,在您的 Laravel 项目中节省了宝贵的时间和精力,同时为您的访问者提供了更好的体验。