📜  laravel 中的 404 页面 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:46.302000             🧑  作者: Mango

Laravel 中的 404 页面

在 Laravel 应用程序中,404 页面用于指示用户访问的资源不存在。 Laravel 提供了一种简便的方法来定义和自定义 404 页面。

默认 Laravel 404 页面

Laravel 框架自带了一个简单但功能强大的 404 页面。当应用程序找不到请求的路由或资源时,它将自动显示。以下是该页的示例:

<!DOCTYPE html>
<html>

<head>
    <title>404 Page Not Found</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        body {
            font-family: Arial, sans-serif;
            background-color: #f2f2f2;
            text-align: center;
            color: #333;
            font-size: 16px;
        }
        
        .container {
            max-width: 960px;
            margin: 0 auto;
            padding: 50px 0;
        }
        
        h1 {
            font-size: 72px;
            margin-bottom: 30px;
        }
        
        p {
            font-size: 24px;
            margin-bottom: 30px;
        }
    </style>
</head>

<body>
    <div class="container">
        <h1>404 Page Not Found</h1>
        <p>The page you requested could not be found.</p>
    </div>
</body>
</html>
自定义 Laravel 404 页面

如果您想要自定义 Laravel 404 页面,您可以轻松地创建一个视图,然后将其与 404 HTTP 响应关联起来。以下是如何完成此操作的示例。

  1. 创建 404.blade.php 视图文件

resources/views/errors 目录下创建 404.blade.php 视图文件,并在其中放置自定义 404 页面的 HTML 和 CSS 代码,如下所示:

<!DOCTYPE html>
<html>

<head>
    <title>404 Page Not Found</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        body {
            font-family: Arial, sans-serif;
            background-color: #f2f2f2;
            text-align: center;
            color: #333;
            font-size: 16px;
        }
        
        .container {
            margin: 50px auto;
            max-width: 960px;
        }
        
        h1 {
            font-size: 72px;
            margin-bottom: 30px;
        }
        
        p {
            font-size: 24px;
            margin-bottom: 30px;
        }
    </style>
</head>

<body>
    <div class="container">
        <h1>404 Page Not Found</h1>
        <p>We're sorry, the page you requested could not be found.</p>
    </div>
</body>

</html>
  1. app/Exceptions/Handler.php 文件中处理 404 异常

打开 app/Exceptions/Handler.php 文件并将以下代码添加到 report 方法之后:

public function render($request, Exception $exception)
{
    if ($this->isHttpException($exception)) {
        if ($exception->getStatusCode() == 404) {
            return response()->view('errors.404', [], 404);
        }
    }

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

在 Laravel 应用程序中定义和自定义 404 页面非常简单。使用默认的 Laravel 404 页面对于简单的项目来说已经足够,但是对于需要更创意和个性化的页面的项目,自定义 404 页面是非常必要的。