배포/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 파일

 

layoutFile.html 파일

 

 

shop.html파일이 layout.html 파일의 fragment에다가 값을 넘겨주는 형태입니다.

fragment의 이름은 layout이고 content paramActive라는 파라메터를 가집니다.

 

이제 shop.html에서 값을 넘겨주어야 합니다. 

- :: 앞은 파일 경로, :: 뒤는 구분자(임의로 적용한 이름)

즉, layoutFile이라는 파일의 layout이라는 fragment를 불러와서 현재 파일의 body를 몽땅 content에 넘기고 paramActive는 'shop'이라는 String을 넘긴다. 라는 뜻이 됩니다.

 

728x90