2017-02-11 3 views
1

私はタイムリーフを使用して、ヘッド/メイン/フッタの部分でテンプレートを分割しています。 (他人にではなく)いくつかのページにスタイルシートとJavaScriptを含めるために、私は、フラグメント式にas explained here.タイムリーフフラグメントの表現

を使用していますので、私の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>を置く場合。

  • スクリプトは、頭の中で
  • 表示されますスクリプトは元の位置

で二回表示されますどのように私は頭の中でスクリプトを入れてからthymeleafを防ぐことができますか?

答えて

0

断片発現は、構文~{template :: selector}を持っている。あなたは、参照します元のファイルと構文が~{:: selector}に縮小されています。 SelectorはXPathやCSSのような表現です。すべてのスクリプトが含まれないようにするには、スコープをheadタグ:~{:: head/script}に絞り込む必要があります。