我使用Thymeleaf的“head”片段存储我的css链接。
我还有一个独特的css文件,我只想应用于给定的页面。我实现这一目标的第一次尝试是下面的方法。
<head th:include="fragments/head :: head">
<link rel="stylesheet" th:href="@{/css/create-post.css}" />
</head>
然而,似乎片段中的css文件插入 头标记的当前内容。这是一个问题,因为在create-post.css中希望覆盖一些样式。
有没有办法改变Thymeleaf如何插入头标记的优先级?
答案 0 :(得分:1)
我不确定我是否理解正确,但让我试一试......
建议1)我有一个小项目,其中每个页面都包含一些javascript-s,而某些页面包含特定于页面的脚本。以下是头部片段的定义:
<head th:fragment="common_header(title, scripts)">
<title th:replace="${title}">A title</title>
<!-- Common scripts -->
<script
src="/js/jquery/jquery.min.js"
th:src="@{/js/jquery/jquery.min.js}">
</script>
...
<th:block th:replace="${scripts}">
</th:block>
</head>
这是一个特定的页面,它不仅需要jQuery,还需要一个额外的脚本来支持reCAPTCHA:
<head th:replace="/fragments/commonheader :: common_header(~{::title},~{::script})">
<title>Register a new user</title>
<script th:src="@{https://www.google.com/recaptcha/api.js}"></script>
</head>
建议2)除th:include
外,还有th:replace
。虽然th:include
将片段的内容包含在其主机标签中,但th:replace
实际上将用片段替换主机标签。详情here。
我希望这些想法可能有所帮助。