如何美化Laravel自定义错误页面(如500403状态)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1008个文字,预计阅读时间需要5分钟。
Laravel的错误页面默认由框架内置视图控制,无需修改`vendor`目录下的文件。所有自定义视图必须放置在`resources/views/errors`目录下,按HTTP状态码命名,例如`404.blade.php`, `500.blade.php`, `403.blade.php`等。Laravel会自动匹配这个路径,不区分大小写,但文件名需严格对应数字状态码。
常见错误:把文件放到 resources/views/layouts/ 或 views/shared/ 下,Laravel 根本不会加载;或者命名为 NotFound.blade.php,它只认 404.blade.php。
- 目录必须是
resources/views/errors/,不能是其他路径 - 文件名只能是纯数字 +
.blade.php(如419.blade.php也有效) - 如果用了缓存(
php artisan view:cache),改完要清缓存,否则看不到效果
为什么 500 页面不显示自定义内容
开发环境下(APP_DEBUG=true)Laravel 强制显示详细异常堆栈,完全绕过 500.blade.php。只有在 APP_DEBUG=false 且 APP_ENV=production 时,才会真正渲染你写的 500.blade.php。
本文共计1008个文字,预计阅读时间需要5分钟。
Laravel的错误页面默认由框架内置视图控制,无需修改`vendor`目录下的文件。所有自定义视图必须放置在`resources/views/errors`目录下,按HTTP状态码命名,例如`404.blade.php`, `500.blade.php`, `403.blade.php`等。Laravel会自动匹配这个路径,不区分大小写,但文件名需严格对应数字状态码。
常见错误:把文件放到 resources/views/layouts/ 或 views/shared/ 下,Laravel 根本不会加载;或者命名为 NotFound.blade.php,它只认 404.blade.php。
- 目录必须是
resources/views/errors/,不能是其他路径 - 文件名只能是纯数字 +
.blade.php(如419.blade.php也有效) - 如果用了缓存(
php artisan view:cache),改完要清缓存,否则看不到效果
为什么 500 页面不显示自定义内容
开发环境下(APP_DEBUG=true)Laravel 强制显示详细异常堆栈,完全绕过 500.blade.php。只有在 APP_DEBUG=false 且 APP_ENV=production 时,才会真正渲染你写的 500.blade.php。

