[Trouble Shooting] thymeleaf 에러: template might not exist or might not be accessible by any of the configured Template Resolvers 해결
문제 상황
thymeleaf 를 사용하면서, Intelli J에서 개발할 때는 이상 없이 html 파일을 찾아가며 화면이 노출되었는데,
리눅스 환경(AWS)에서 jar로 build 하고 외부에서 실행하면 아래와 같은 에러를 발생시키면서 화면에 접근하지 못하는 경우가 생겼다.
문제 원인
Controller에서 return 하여 html 파일을 불러오는 경로가 문제라는 이야기가 있었다.
예를 들면 return "/home";
을 return "home";
으로 변경해야 한다는 것이었다.
하지만 내 코드는 원래부터 슬래시가 없었다..
나의 경우에는 html 파일의 위치가 잘못 설정되어 있었다!
해결 방법
이 글을 보고 코드를 변경했다.
application.yml 내용 수정
기존 application.yml
spring:
# thymeleaf:
# enabled: true
# encoding: UTF-8
# prefix: /WEB-INF/view/
# suffix: .html
# cache: false
주석 부분을 모두 제거했다.
타임리프 소스 위치 변경
home.html의 위치를 변경했다.
src/main/WEB-INF/view/home.html
-> src/main/resources/templates/home.html
컨트롤러 수정
@RestController
public class HomeController {
@GetMapping("/social/login")
public ModelAndView login() {
ModelAndView mv = new ModelAndView();
mv.setViewName("home");
return mv;
}
}
💛 개인 공부 기록용 블로그입니다. 👻