【问题标题】:Thymeleaf was unable to render <img> tag when sent from database table从数据库表发送时,Thymeleaf 无法呈现 <img> 标记
【发布时间】:2018-11-23 09:39:13
【问题描述】:

为什么 thymeleaf 不渲染

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

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

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

可能是什么问题?

【问题讨论】:

  • 在这里分享一些代码,以便更好地了解发生了什么。
  • @NAVIN:我确实分享了问题中的代码。来自数据库表的字符串中有&lt;img th:src="@{/path/img/logo.jpg}" width="50" height="50" alt="logo"/&gt;,但是当在页面上呈现时,即使相对路径正确,图像标签也不会呈现。 @piet.t:感谢您编辑我的问题,我现在对此有所了解,我很感激,至少可以说编辑是完美的。

标签: thymeleaf


【解决方案1】:

我终于找到了解决办法。我将上下文路径附加到 src 属性的相对路径,而没有 thymeleaf 的命名空间限定,如下所示:&lt;img src="/contextPath/path/img/logo.jpg" width="50" height="50" alt="logo"/&gt;。 注意资源的可访问性是多么简单:/contextPath/relativePath,所以最重要的路径是相对路径。这类似于:Thymeleaf parse text and execute in-text expressions。 我观察到,一旦 thymeleaf 的命名空间 th: 限定了位于文本/字符串内的 hrefsrc 属性,则绝对路径无法正确解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2016-08-19
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多