본문 바로가기
📍 Front-End/🜸 Error

[Thymeleaf] TemplateInputException 에러

by 예리Yelee 2021. 6. 16.
반응형

View Template Engine으로 타임리프를 사용 중인데

로컬에서 테스트할 때는 아무 문제없던 이 타임리프가

개발 서버에 배포 후 에러 창과 함께 아래와 같은 에러가 발생했다 😱

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/fragment/common], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "common/defaultLayout" - line 5, col 9)
    at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.engine.TemplateManager.parseStandalone(TemplateManager.java:250) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.standard.expression.FragmentExpression.resolveExecutedFragmentExpression(FragmentExpression.java:588) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.standard.processor.AbstractStandardFragmentInsertionTagProcessor.computeFragment(AbstractStandardFragmentInsertionTagProcessor.java:379) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.standard.processor.AbstractStandardFragmentInsertionTagProcessor.doProcess(AbstractStandardFragmentInsertionTagProcessor.java:110) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]
    at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.0.12.RELEASE.jar!/:3.0.12.RELEASE]

 

원인을 알아보니 html 코드 작성 시 fragment의 경로를 절대 경로로 지정해서 발생한 에러...

 

Before

<header th:replace="/fragment/common.html :: header"></header>

After

<header th:replace="fragment/common.html :: header"></header>

 

경로 앞에 슬래쉬(/)를 제거하고 서버에 배포하니 정상적으로 작동하는 것을 확인!

패키지 구조에 따라 경로로 올바르게 잡아주면 된다.

간단하지만 자주 하는 실수.. 

반응형

댓글