thymeleaf绝对URL与变量

时间:2017-10-27 18:13:05

标签: spring spring-mvc thymeleaf

我正在尝试使用Thymeleaf将域url注入链接。我的URL正在从控制器传递,因为我放了日志并看到它。

我的链接就像我的Thymeleaf html模板一样:

<link type="text/css" th:href="@{${DomainUrl}/web/assets/css/foundation5/foundation.min.css}" rel="stylesheet" />

然而,当我在本地运行它时它不会替换域,例如,抛出错误(因为当然没有找到URL)渲染如下: http://localhost:8081/pss/ui/ $%7BDomainUrl%7D /网络/资产/ CSS / components.css

3 个答案:

答案 0 :(得分:2)

好的,为了使其工作,您必须使用预处理操作符__expression__来获取属性链接,这样您最终会得到这样的想法

<link type="text/css" th:href="@{__${DomainUrl}__/web/assets/css/foundation5/foundation.min.css}" rel="stylesheet" />

这将预处理并解析${DomainUrl}表达式,并将结果字符串传递给@表达式处理器。经过测试并像魅力一样工作:

<a th:href="@{__${currentUrl}__/blah/blah/blahhhh}">hey there</a>

生成

<a href="http://localhost:8080/admin/place/list/blah/blah/blahhhh">hey there</a> 

其中http://localhost:8080/admin/place/list/currentUrl

在我的

答案 1 :(得分:1)

我找到了解决方案。我不得不把链接变成文字:

<link type="text/css" th:href="@{|${DomainUrl}/web/assets/css/foundation5/normalize.css|}" rel="stylesheet" />

答案 2 :(得分:0)

尝试

<link type="text/css" th:href="@{${DomainUrl + '/web/assets/css/foundation5/foundation.min.css'}}" rel="stylesheet" />

${DomainUrl}是以http://还是https://开头的?在使用@{}表达式创建链接时,这会有所不同。