首页 > 解决方案 > 从数据库表发送时,Thymeleaf 无法呈现标签

问题描述

为什么百里香叶不渲染

<img th:src="@{/path/img/logo.jpg}" width="50" height="50" alt="logo"/> 

当它从数据库表中读取并作为非转义文本 ( th:utext) 放置在页面上时?

通常,当放置在页面上时,它会正确呈现。这个想法是将上传的图像保存到应用程序中的路径,并将图像的名称保存为数据库表中的字符串。在读取图像期间,从数据库表中获取名称并放置在<img> 标签中。这适用于 JSP,但我无法使用 thymeleaf 获得类似的结果。我检查了浏览器控制台日志,路径th:src="@{/path/img/logo.jpg}"可见但未解析为在页面上显示图像。

可能是什么问题?

标签: thymeleaf

解决方案


我终于找到了解决方案。我将上下文路径附加到src属性的相对路径而没有 thymeleaf 的命名空间限定,如下所示<img src="/contextPath/path/img/logo.jpg" width="50" height="50" alt="logo"/>:请注意对资源的可访问性是多么简单:/contextPath/relativePath,因此最重要的路径是相对路径。这类似于:Thymeleaf 解析文本并执行文本表达式。我观察到,一旦 thymeleaf 的命名空间 th: 限定了位于文本/字符串内的hrefsrc属性,则绝对路径无法正确解析。


推荐阅读