Spring Boot와 Thymeleaf 환경에서 특정 HTML 페이지에 접근할 때 404 에러

song yuheon·2023년 9월 25일
0

Trouble Shooting

목록 보기
23/57
post-thumbnail
post-custom-banner

문제



1. 문제 상황


  • Spring Boot와 Thymeleaf 환경에서 특정 HTML 페이지에 접근할 때 문제가 발생한다.
    페이지를 로드할 수 없거나 예상치 못한 동작이 발생하였다.

2. 원인 파악


  • Spring Web MVC는 웹 요청을 처리하기 위해 Controller 클래스를 사용한다.
  • HTML 파일을 직접 반환하기 위해서는 해당 HTML 파일의 경로를 컨트롤러에서 매핑해야 한다.
  • src/main/resources/static 또는 src/main/resources/public 경로에 위치한 파일은 정적 리소스로 간주되므로 별도의 컨트롤러 매핑 없이 접근 가능하다.
  • 그러나 src/main/resources/templates 경로에 위치한 파일들은 Thymeleaf와 같은 템플릿 엔진과 함께 사용되기 때문에 컨트롤러를 통한 매핑이 필요하다.

3. 해결 방안


a. 정적 리소스 vs 동적 리소스 확인

  • 페이지를 반환하려는 HTML 파일의 경로를 확인해야한다.
  • 파일이 src/main/resources/static 또는 src/main/resources/public에 있다면 해당 경로로 직접 접근해야 한다.
  • 파일이 src/main/resources/templates에 위치한다면 컨트롤러를 통해 경로를 매핑해야 한다.

b. 템플릿 엔진의 활용 확인

  • 동적 데이터를 HTML에 삽입하거나 조건부 렌더링이 필요한 경우 Thymeleaf 같은 템플릿 엔진을 활용해야한다.
  • 해당 경우에는 컨트롤러를 사용하여 Model 객체에 데이터를 추가하고, 이를 템플릿 엔진에 전달하여 처리해야 한다.

c. 요청 처리 로직 확인

  • 컨트롤러 내에서는 단순 HTML 페이지 반환 외의 다양한 로직을 수행할 수 있다.
  • 사용자 인증, 데이터베이스 정보 조회 등의 로직을 처리한 후 적절한 응답을 반환하는지 확인한다.

해결


  • 해당 HTML 파일의 경로를 확인하고, 필요한 경우 컨트롤러에 매핑을 추가한다.
  • Thymeleaf와 같은 템플릿 엔진을 사용하는 경우 컨트롤러를 통해 필요한 데이터를 HTML에 전달하도록 한다.
  • 요청 처리 로직이 올바르게 작동하는지 테스트하고 필요한 경우 로직을 수정하거나 개선한다.

profile
backend_Devloper
post-custom-banner

0개의 댓글