【发布时间】:2016-07-17 01:32:53
【问题描述】:
好的,我正在使用thymeleaf page layouts。
它似乎工作正常,但是,我想知道如何在使用片段的页面的<head></head> 中配置<title></title> 属性?目前,head 中的所有内容都被 header 片段覆盖(如下所示)。
这是我的:resources/templates/fragments/header.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head th:fragment="header">
<link href="../../static/css/bootstrap.min.css" th:href="@{css/bootstrap.min.css}" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" th:src="@{js/bootstrap.min.js}"></script>
</head>
<body></body>
</html>
这是我的索引页面(我希望显示标题标签):
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head th:include="fragments/header :: header">
<title>THIS DOES NOT SHOW</title>
</head>
<body>
<div class="container">
<div th:include="fragments/headerNavbar :: headerNavbar"></div>
<h1>hey</h1>
<div class="btn btn-success">button</div>
<button class="btn btn-success">another</button>
</div>
这是实际的 HTML 输出:
<head>
<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="js/bootstrap.min.js"></script>
</head>
我知道发生了什么。标题片段被加载(包含)到我的索引页面的头部,因此它覆盖了所有属性。
我的问题是我不知道如何拥有一个标题片段并且在指定一个属性(如标题)时让一个文件使用该片段。
这是我在索引文件中尝试过的:
<head>
<div th:include="fragments/header :: header"></div>
<title>THIS DOES NOT SHOW</title>
</head>
但它确实搞砸了我的 HTML。必须有一个简单的解决方案?
【问题讨论】:
-
可能我也想问。
-
@Prashant 太奇怪了!似乎并不是一个明显的解决方案。有可能的方法来解决它,也许使用 Jquery,但那很笨重......
-
同意!它们只能被视为解决方法而不是解决方案,尤其是当声称 thymeleaf 是一种天然的模板引擎时。真的很想知道我们是否在这里遗漏了什么..
-
@Prashant 找到了解决方案!一分钟后查看我的答案
-
看起来像一个解决方案,因为
标签: java spring-mvc spring-boot thymeleaf