gpt4 book ai didi

layout - Thymeleaf 布局方言和 :replace in head causes title to be blank

转载 作者:行者123 更新时间:2023-12-02 05:56:24 24 4
gpt4 key购买 nike

我正在关注本教程:http://www.thymeleaf.org/doc/layouts.html (转到 Thymeleaf 布局方言部分)。您可以在那里找到一个示例:

<!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">&copy; 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>
...

出了什么问题?

最佳答案

终于,我找到了实现我想要的目标的方法。

在布局文件中<title>标签必须保留。我将所有其他标签归为 <object>标记并注释如下:

<head>
<title layout:title-pattern="$CONTENT_TITLE">Layout Title will be replaced by Page Title!</title>
<object th:include="/html/components/head :: head" th:remove="tag" />
</head>

在我的 html/components/head.htm 文件中,我必须删除 <title>标签,这样包含后就不会重复。

<head th:fragment="head">
<meta charset="utf-8" />
<!-- NO TITLE TAG HERE -->
...
</head>

这样头部片段就会包含<object> 中标签并感谢 th:remove="tag" <object>标签被删除,我的最终 HTML 输出是:

<head>
<title>My content title</title>
<meta charset="utf-8" />
<!-- NO TITLE TAG HERE -->
...
</head>

显然,一旦我开始工作,我也删除了“NO TITLE TAG HERE”消息。

关于layout - Thymeleaf 布局方言和 :replace in head causes title to be blank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com