提问者:小点点

带变量胸腺叶绝对URL


我正在尝试使用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/${DomainUrl}/web/资产/css/组件. css


共3个答案

匿名用户

好的,所以为了让这个工作,你必须使用预处理运算符__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/是当前Url

在我

匿名用户

我找到了解决方案。我必须将链接设为文字:

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

匿名用户

试试看

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

${DomainUrl}是否以超文本传输协议://https://开头?这在使用@{}表达式创建链接时会有所不同。

相关问题