개발
Laravel 개발 일지
라라벨 에러 페이지 수정 및 커스터마이징
51 views as of October 10, 2024.
네이티브하게 웹을 구현한다면 기본적으로 Nginx 에러메시지가 뜨겟지만, 프레임워크를 사용하면 에러페이지도 프레임워크용 에러페이지로 제공된다.

라라벨 프로젝트에서 기본적으로 에러 페이지는 아래와 같이 나타난다.

디폴트 에러 페이지

이 에러페이지는 라라벨 vendor 내부의 미리 정의된 뷰 파일을 이용해 랜더링 된다.

이 에러 페이지를 직접 뜯어고치고 싶다면 해당 에러페이지들을 내 프로젝트의 views에 뜨게해야한다.
이 작업을 위해 먼저 프로젝트 위치에서 아래 터미널 명령을 통해 vendor에 있는 뷰를 꺼내온다.

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

이 명령어를 진행하면 views 폴더 아래에 errors 폴더가 새로 생기며 그 안에 여러가지 에러 상황에 대비해 미리 정의된 뷰 파일이 아래와 같이 나타난다.

에러 뷰파일 목록

401~503은 각 http 응답 에러시에 보이는 컨텐츠 코드이며 이 파일들은 상단에 @extends('errors::minimal') 코드를 통해 어떤 레이아웃을 사용할지 정의한다.

예를들어 404 에러시 보이는 404.blade.php의 뷰파일 코드는 아래와 같다.

1
2
3
4
5
@extends('errors::minimal')
 
@section('title', __('Not Found'))
@section('code', '404')
@section('message', __('Not Found'))
cs

각 에러에 사용되는 변수인 title, code, message 는 라라벨의 Exception 모델에 의해 처리되서 넘어온다.


결국 에러페이지를 바꾸고 싶다면 각 에러페이지 코드가 적힌 blade 파일을 수정하는게 아니라 그 blade 파일의 layout을 찾아 바꾸면된다.

위으 경우에는 errors::minial 를 확장해 사용하고 있으므로 minial.blade.php 를 열어 적절히 수정해주면된다.

스타일좀 수정해본 에러페이지

참고로 원래대로 돌리고 싶으면 위에 생성된 errors 폴더를 삭제하면 디폴트 에러페이지로 다시 참조되어 적용된다.
×