본문 바로가기

배포/Aws

[AWS] ec2 환경에서 thymleaf 오류 잡기(template might not exist or might not be accessible by any of the configured Template Resolvers...)

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

'배포 > Aws' 카테고리의 다른 글

리눅스와 윈도우는 시간이 다르게 흘러가나??  (0) 2022.10.07