Laravel 错误处理:自定义 404 页面 1 个改进

Laravel 可以轻松显示各种 HTTP 状态代码的自定义错误页面。

例如,如果你希望自定义 404 HTTP 状态码的错误页面,可以创建一个 resources/views/errors/404.blade.php视图文件。该文件将被用于你的应用程序产生的所有 404 错误。由 abort 函数引发的 HttpException 实例将作为 $exception 变量传递给视图:

<h2>{{ $exception->getMessage() }}</h2>

路由代码:

Route::get('/404', function () {
    abort(404, '抱歉,未找到数据!');
});

浏览器访问:

aSw3IS9ZRt.png!large

你还可以使用 vendor:publish Artisan 命令来生成错误模板页面:

php artisan vendor:publish --tag=laravel-errors

看到输出类似下面的信息则表示生成成功:

Copied Directory [/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views] To [/resources/views/errors]
Publishing complete.

将发现 resources/views/errors 有如下文件:

resources/views/errors
├── 401.blade.php
├── 403.blade.php
├── 404.blade.php
├── 419.blade.php
├── 429.blade.php
├── 500.blade.php
├── 503.blade.php
├── illustrated-layout.blade.php
├── layout.blade.php
└── minimal.blade.php

此时就可以愉快的修改对应 HTTP 状态码的模板文件了。

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 1

请问一下,那如果我的网站有PC端和APP端,那么如何自定义两个404页面?让手机端和PC端的404页面分开,我的手机端是通过路由组加上前缀mobile来区分的,这样的话,比如PC端的路由是/404,然后APP端的路由变为/mobile/404,是否可以这样?希望有谁能帮我解答下,非常感谢!

1个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!