Programming/Spring boot

[Spring boot] 리눅스 환경에서 마주한 TemplateInputException: Error resolving template

hyeonic 2021. 6. 7. 19:37

프로젝트를 진행 하던 중 프론트의 원할한 작업과 실제 배포 환경을 연습하기 위한 개발 서버를 구성하였다. window 기반 local 환경에서 프로젝트를 진행했을 때 큰 문제 없이 thymeleaf의 화면이 적절히 랜더링 되는 것을 확인하였다. 하지만 ec2를 활용한 amazon linux 2 기반의  개발 서버에서는 아래와 같은 에러를 맞닥뜨리게 되었다.


Error resolving template [/fragments/admin-header.html]

현재 프로젝트 구조를 보면 html의 head 부분과 body의 header, footer 부분을 fragments로 나누어 사용하고 있다.

새롭게 페이지를 구성할 때 위와 같은 fragments들을 적절히 배치하여 작성하고 있었다.

 

example.html

하지만 위 fragments를 replace를 하지 못해서 생긴 예외였다. 

 

원인은 fragments 앞에 붙어 있는 '/' 절대 경로로 인하여 생긴 문제 였다.

위와 같이 모두 수정을 해 주고 난 후 다시 페이지를 불러오니 정상적으로 처리된 것을 확인할 수 있었다. 그밖에도 controller에서 view를 반환할 때 view 이름 맨 앞에 '/' 붙여도 동일한 상황을 연출할 수 있다.


정리

각각의 운영체제에 따라 경로에 대해 해석하는 것이 달랐다. 각 특성을 잘 파악하고 적절히 프로젝트를 수정하고 관리해야 겠다.