我有一个问题,找出语法来生成一个服务器相关的URL变量替换。
如果我这样做:
<img th:src="@{~'/puzzles/'+${category.getDirName()}+'/'+${category.getRandomPuzzleName()}+'.png'}"/>
Thymeleaf将代码输出到页面源:
<img src="~'/puzzles/'+${category.getDirName()}+'/'+${category.getRandomPuzzleName()}+'.png'"/>
如果我删除波浪号(所以它现在是一个上下文相关的url):
<img th:src="@{'/puzzles/'+${category.getDirName()}+'/'+${category.getRandomPuzzleName()}+'.png'}"/>
Thymeleaf解释变量并给我这个输出:
<img src="/www/puzzles/3DMathPuzzles-Cube-555/3DMathPuzzle-Cube-555-00011-5.png"/>
但是,当然URL不是我想要的,因为它有'/www'上下文。
我希望标签是这样的:
<img src="/puzzles/3DMathPuzzles-Cube-555/3DMathPuzzle-Cube-555-00011-5.png"/>
有什么办法吗?
没有在Thymeleaf中使用服务器相关URL,但是如果我正确理解留档,~
需要成为字符串的一部分:
<img th:src="@{'~/puzzles/'+${category.getDirName()}+'/'+${category.getRandomPuzzleName()}+'.png'}"/>
如果这不起作用,请尝试URL占位符语法:
<img th:src="@{~/puzzles/{dir}/{name}.png(dir=${category.getDirName()}, name=${category.getRandomPuzzleName()})}"/>