如何在Thymeleaf模板中添加源代码注释,而这些注释不会包含在生成的HTML中?

56

我正在使用全栈 Thymeleaf(Spring MVC、Security、Layout Dialect、Webflow)开发一款中等规模的 Web 应用程序。

好吧...现在我们在 HTML 模板中放了那么多代码,包含不会被生成的 HTML 文件中的源代码注释将是个不错的选择。

我们如何实现这一点?


1
就此而言,Thymeleaf页面有自己的支持论坛。这就是我删除了您消息的前半部分以及为什么这个问题可能会在那里得到更多关注的原因。 - madth3
5个回答

86

版本2.1已发布,现在您可以升级您的库并在代码中使用注释。使用此版本,开发人员可以使用解析器级别的注释块:

<!--/* This code will be removed at thymeleaf parsing time! */-->

以及仅为原型的注释块:

<span>hello!</span>
<!--/*/
    <div th:text="${...}">

</div>
/*/-->
<span>goodbye!</span>

更详细的说明可以在这里的官方文档中找到:http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#comments-and-blocks


2
请注意,<!--/*应该在<!--和/*之间没有空格。只是想提一下,因为我曾经被它咬过。 - C J
thymeleaf 3.0.11,我没有产生任何影响。 - peterh
注释块应该长成这样:<!--/*--> 你的多行注释 <!--*/--> - Chris Ociepa

12

Rafal Borowiec所提到的,在HTML代码中添加注释块应该使用<!--/*需要注释的内容*/-->结构(详见文档)。

此外,也可以在thymeleaf中使用/*[-需要注释的内容-]*/结构来注释/删除JavaScript代码(详见文档)。因此,您可以对JavaScript代码进行注释而不泄漏任何信息。

/*[-
 *
 * Some information about function.
 *
 * -]*/
function someFunction() {
    console.log('Hello world');
}

关于JS代码注释,您必须将th:inline="javascript"放置在脚本标签中,如下所示:<script type="text/javascript" th:inline="javascript">,否则它将无法正常工作。 - michal.jakubeczy

12

使用Thymeleaf 3.0,当前的工作版本是

<!--/*-->
   this comment will be removed by thymeleaf on the template processing
<!--*/-->

对于较早版本的thymeleaf,其他答案对我没有用。当前的thymeleaf文档在这里


4
在2.1版本之前,您可以这样做。
<th:block th:if="${false}"><!--   ignore me  --></th:block>

这很丑(th:block需要一个错误的th:if),但可以工作。


2

在当前稳定版本的Thymeleaf中,这是不可能的。正如Thymeleaf Issue 10中提到的那样,计划在2.1版本中实现此功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接