📌  相关文章
📜  laravel 中的自定义 404 页面 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:34.257000             🧑  作者: Mango

Laravel 中的自定义 404 页面

当用户访问网站上不存在的页面时,将出现404页面。 Laravel 允许您自定义404页面,以便在这种情况下向用户提供更好的用户体验。本文将介绍如何在 Laravel 项目中自定义404页面。

创建404视图

首先,我们需要创建一个自定义的404视图。在 Laravel 项目的 resources/views 目录下创建一个名为 404.blade.php 的文件,并编辑它以显示您喜欢的内容。以下是一个示例模板:

@extends('layouts.app')

@section('content')
    <h1> 404 页面未找到</h1>
    <p>对不起,我们无法找到您正在查找的页面。请确认您输入的 URL 是否正确,或尝试使用我们的搜索功能。</p>
@endsection
将404页面与路由关联

一旦创建了自定义的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页面

为了使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 项目中节省了宝贵的时间和精力,同时为您的访问者提供了更好的体验。