트러블
로컬에서 잘돌아가던 타임리프 페이지가 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한테도 물어봤는데 해결을 못하다가 구글링을 열심히해서 찾아냈다.
'포트폴리오 작업 > 트러블 슈팅' 카테고리의 다른 글
쿠키가 안지워지는경우(트러블 슈팅) (0) | 2024.09.04 |
---|---|
vercel ec2 도메인 서브도메인 호스팅 (트러블 슈팅) (1) | 2024.09.04 |
https 요청에러 (트러블 슈팅) (0) | 2024.08.14 |
모바일 강제 다크모드 (트러블슈팅) (0) | 2024.07.27 |
자바스크립트 객체배열 , SpringMvc dto 객체리스트 받기. (트러블슈팅) (0) | 2024.06.29 |