Laravel自定义404和500页面只需在resources/views/errors/下创建对应状态码的Blade文件,如404.blade.php和500.blade.php,系统会自动渲染;通过abort(404)或abort(500)测试,确保APP_DEBUG=false并清除视图缓存即可生效。

Laravel 自定义 404 和 500 错误页面非常简单,只需要在 resources/views/errors/ 目录下创建对应状态码的 Blade 模板文件即可。Laravel 会自动根据 HTTP 状态码渲染相应的错误页面。
1. 创建自定义错误页面模板
Laravel 使用 resources/views/errors/ 文件夹来存放所有错误页面视图。你只需在此目录下创建与状态码同名的 Blade 文件:
- 404.blade.php —— 页面未找到
- 500.blade.php —— 服务器内部错误
- 其他如 403、419 等也可按需创建
例如,创建自定义 404 页面:
再比如,创建 500 页面:
服务器开小差了,请稍后再试!
错误代码:500
2. 测试错误页面
为了查看效果,可以在路由中手动触发异常:
功能列表:底层程序与前台页面分离的效果,对页面的修改无需改动任何程序代码。完善的标签系统,支持自定义标签,公用标签,快捷标签,动态标签,静态标签等等,支持标签内的vbs语法,原则上运用这些标签可以制作出任何想要的页面效果。兼容原来的栏目系统,可以很方便的插入一个栏目或者一个栏目组到页面的任何位置。底层模版解析程序具有非常高的效率,稳定性和容错性,即使模版中有错误的标签也不会影响页面的显示。所有的标
abort(404);
});
Route::get('/test-500', function () {
abort(500);
});
访问 /test-404 或 /test-500 就能看到你自定义的页面。
3. 全局异常处理(可选)
如果你需要更精细地控制异常响应,可以编辑 app/Exceptions/Handler.php 中的 render() 方法:
{
if ($exception instanceof \Illuminate\Foundation\Http\Exceptions\MaintenanceModeException) {
return parent::render($request, $exception);
}
return parent::render($request, $exception);
}
一般情况下无需修改此文件,Laravel 默认会优先查找 resources/views/errors/ 下的视图。
4. 注意事项
- 确保文件名与状态码一致(如 404.blade.php)
- 支持 Blade 语法,可引入布局模板、CSS 和 JS
- 生产环境必须关闭调试模式(
APP_DEBUG=false),否则会显示详细错误页 - 使用
php artisan view:clear清除视图缓存后测试
基本上就这些。只要模板存在且命名正确,Laravel 会自动调用它们,无需额外配置。不复杂但容易忽略。









