반응형

트러블

로컬에서 잘돌아가던 타임리프 페이지가 ec2 서버에 올리고 페이지를 못찾아서 에러가 발생했다..


Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/index.html]")] with root cause

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/common/header], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "common/layout" - line 6, col 11)

 

[THYMELEAF][http-nio-8081-exec-1] Exception processing template "index": An error happened during template parsing (template: "class path resource [templates/index.html]")

org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/index.html]")

 


원인

이렇게 index.html에서 타임리프 레이아웃을 사용해서 헤더를 불러서 붙여놨는데 header를 찾을수없다는 이야기였다.


layouy.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap.min.css}">
<link rel="stylesheet" type="text/css" th:href="@{/css/style.css}">
<script defer th:src="@{/js/bootstrap.bundle.js}"></script>
<th:block th:replace="~{/common/header::header}"></th:block>
<body>
<th:block layout:fragment="content"></th:block>
</body>
</html>

지금 헤더를 찾는부분이 절대경로로 /common/header::header 로 되어있는데 이 부분을 

 

해결

common/header::header 로 상대경로로 수정해주면 작동이잘된다.. 

 

서버에서는 프로젝트의 루트 디렉토리가 달라질수있어서 상대경로로 지정해야한다고한다.

하하하.. 몇 시간 정도해메고 ai한테도 물어봤는데 해결을 못하다가 구글링을 열심히해서 찾아냈다. 

반응형

+ Recent posts