我正在尝试使用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
答案 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://
开头的?在使用@{}
表达式创建链接时,这会有所不同。