배포/Aws
[AWS] ec2 환경에서 thymleaf 오류 잡기(template might not exist or might not be accessible by any of the configured Template Resolvers...)
wonin
2022. 8. 15. 12:46
springboot를 사용하고 thymleaf로 view를 만들어서 ec2 ubuntu 환경에 배포를 했습니다.
하지만 thymleaf를 읽을 수 없다는 에러가 나왔습니다.
여러가지 검색을 해본 결과 2가지 경우가 있다고 합니다.
1. 템플릿이 존재하지 않음
2. 템플릿 리졸버에서 접근할 수 없음
저같은 경우 2번에 해당합니다.
해결 순위
1번
Template 경로 바꾸기
application.properties 파일에
spring.thymeleaf.prefix=classpath:/templates/
를 추가하면 template 경로를 잡아줍니다.
2번
Controller에 반환값
Controller의 반환값 맨 앞에 /가 들어가 있으면 안됩니다. 제 반환값도 처음에 /myPage/memberPurchaseOdres 로 되어있었습니다.
그래서 linux 환경에서 thymleaf 리졸버가 읽지를 못했습니다.
3번
th:fragment, th:replace 확인하기
shop.html파일이 layout.html 파일의 fragment에다가 값을 넘겨주는 형태입니다.
fragment의 이름은 layout이고 content와 paramActive라는 파라메터를 가집니다.
이제 shop.html에서 값을 넘겨주어야 합니다.
- :: 앞은 파일 경로, :: 뒤는 구분자(임의로 적용한 이름)
즉, layoutFile이라는 파일의 layout이라는 fragment를 불러와서 현재 파일의 body를 몽땅 content에 넘기고 paramActive는 'shop'이라는 String을 넘긴다. 라는 뜻이 됩니다.
728x90