繁体   English   中英

Thymeleaf片段表达

[英]Thymeleaf fragment expression

我正在使用thymeleaf将模板分割成头/主/页脚部分。 为了在某​​些页面上包含样式表和javascript(但不在其他页面上),我使用片段表达式,如此处所述。

所以我的head.html看起来像:

<!DOCTYPE html>
<html>
<head th:fragment="head(title,links,scripts)">
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"/>
    <title th:replace="${title}">Title placeholder</title>

    <!--/* Per-page placeholder for additional links */-->
    <th:block th:replace="${links} ?: ~{}" />
    <th:block th:replace="${scripts} ?: ~{}" />
</head>
<body>
</body>
</html>

这在我的主页index.html中使用 ,如下所示:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="head :: head(~{::title},~{::link},~{::script})">
    <title th:text="#{label.pages.home.title}">Homepage</title>
    <link rel="stylesheet" href="/assets/css/jumbotron.css"/>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>

<body>
...
</body>
</html>

这样可以正常工作。 脚本和链接标记显示在结果页面的标题中。 然而,偶尔我想在正文的末尾有脚本(就在</body>之前。如果我把<script>....</script>放在那个位置,结果页面中会发生两件事。

  • 脚本出现在头部
  • 该脚本第二次出现在其原始位置

我怎样才能防止百里香将剧本放在头上?

片段表达式具有语法~{template :: selector} 您引用的原始文件和语法缩减为~{:: selector} Selector是XPath或CSS之类的表达式。 为了防止包含所有脚本,您应该将范围缩小到head标记: ~{:: head/script}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM