Диалект макета Thymeleaf и th: замена в голове приводит к тому, что заголовок будет пустым
Я следую этому уроку:http://www.thymeleaf.org/doc/layouts.html (добрался до раздела диалекта Thymeleaf Layout). Там вы можете найти пример:
<!DOCTYPE html>
<html>
<head>
<!--/* Each token will be replaced by their respective titles in the resulting page. */-->
<title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">Task List</title>
...
</head>
<body>
<!--/* Standard layout can be mixed with Layout Dialect */-->
<div th:replace="fragments/header :: header">
...
</div>
<div class="container">
<div layout:fragment="content">
...
</div>
<div th:replace="fragments/footer :: footer">© 2014 The Static Templates</div>
</div>
</body>
</html>
Нижний колонтитул и заголовок заменяютсяth:replace
тег в приведенном выше примере, в то время как<head>
имеет<title>
тег в файле макета.
В основном я хочу заменить весь<head>
пометить сth:replace
, Поэтому у меня есть:
Мой файл макета:
<!DOCTYPE html>
<html>
<head th:replace="/html/components/head :: head">
</head>
<body>
<div layout:fragment="content">
</div>
...
<div th:replace="/html/components/footer :: footer" />
</body>
<html>
Мой файл содержимого:
<!DOCTYPE html>
<html layout:decorator="/html/layouts/layout">
<head>
<title>My content title</title>
</head>
<body>
<div layout:fragment="content">
...
</div>
</body>
</html>
И, наконец, мой файл /html/components/head.htm:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head th:fragment="head">
<meta charset="utf-8" />
<title layout:title-pattern="$CONTENT_TITLE">Layout Title should be replaced by Content Title!</title>
...
</head>
<body>
</body>
</html>
Содержание в порядке. Нижний колонтитул и заголовок включены (заменены) из файлов, как и ожидалось, но заголовок страницы пуст!
Я получил:
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title></title>
...
В чем дело?