헤르메스 LIFE

[Thymeleaf] You don't need to put the layout:fragment/data-layout-fragment attribute into the <head> section - the decoration process will automatically copy the <head> section of your content templates into your layout page. 본문

Exception

[Thymeleaf] You don't need to put the layout:fragment/data-layout-fragment attribute into the <head> section - the decoration process will automatically copy the <head> section of your content templates into your layout page.

헤르메스의날개 2023. 6. 18. 01:13
728x90

다음과 같은  WARN 도 발생되었습니다.

내용은 " layout:fragment/data-layout-fragment 속성을 <head> 섹션에 넣을 필요가 없다. decoration 프로세스가  당신의 layout 페이지의 content templates 의 <head> 섹션에 을 자동으로 복사할 것이다." 정도 일 것 같습니다.

WARN 23-06-17 23:30:439[http-nio-9999-exec-1] [▶ nz.net.ultraq.thymeleaf.layoutdialect.fragments.FragmentProcessor.defaultCall ◀][47]: - You don't need to put the layout:fragment/data-layout-fragment attribute into the <head> section - the decoration process will automatically copy the <head> section of your content templates into your layout page.


원본  Source는 아래와 같습니다.

basic.html

<!DOCTYPE html>
<html lang="ko" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head th:replace="fragments/header :: main-head"> </head>
    <body th:replace="fragments/body :: main-body"> </body>
</html>

header.html

<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head th:fragment="main-head">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

    <th:block layout:fragment="title"></th:block>

    <link rel="stylesheet" th:href="@{/css/default.css}" />
    <link rel="stylesheet" th:href="@{/css/common.css}" />
    <link rel="stylesheet" th:href="@{/css/content.css}" />
    <link rel="stylesheet" th:href="@{/css/button.css}" />

    <th:block layout:fragment="add-css"></th:block>
</head>
</html>

이렇게 개발되어 있던 Source 였습니다.


아래와 같이 변경합니다.

basic.html

<!DOCTYPE html>
<html lang="ko" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
	    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	
	    <link rel="stylesheet" th:href="@{/css/default.css}" />
	    <link rel="stylesheet" th:href="@{/css/common.css}" />
	    <link rel="stylesheet" th:href="@{/css/content.css}" />
	    <link rel="stylesheet" th:href="@{/css/button.css}" />
    </head>
    <body th:replace="fragments/body :: main-body"> </body>
</html>

header.html 파일은 삭제했습니다.


header.html 파일의 아래 구문도 삭제합니다.

<th:block layout:fragment="title"></th:block>
<th:block layout:fragment="add-css"></th:block>

이 구문은 아래의 Source와 매칭될 내용이 였습니다.

<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="layout/basic">
    <th:block layout:fragment="title">
        <title>리스트 페이지</title>
    </th:block>
... 생략...

이 내용은 아래와 같이 변경됩니다.

<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/basic}">
    <head>
        <title>리스트 페이지</title>
    </head>
... 생략 ...

오류의 내용을 번역한 바를 다시 확인 해 보겠습니다.

layout:fragment/data-layout-fragment 속성을 <head> 섹션에 넣을 필요가 없다. decoration 프로세스가  당신의 layout 페이지의 content templates 의 <head> 섹션에 을 자동으로 복사할 것이다." 정도 일 것 같습니다.


해당 페이지를 다시 열어보면 오류는 사라지고, 페이지 소스 보기를 하면 다음과 같이 변경되어 있습니다.

<!DOCTYPE html>
<html lang="ko" xmlns="http://www.w3.org/1999/xhtml">
    <head>
	    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	
	    <link rel="stylesheet" href="/css/default.css" />
	    <link rel="stylesheet" href="/css/common.css" />
	    <link rel="stylesheet" href="/css/content.css" />
	    <link rel="stylesheet" href="/css/button.css" />
	    
	    <title>리스트 페이지</title>
    </head>

basic.html 영역에 <title></title> 이 추가된 내용이 확인 되실겁니다. "자동으로 복사된다" 라는 의미로 생각됩니다.

 

728x90