Spring Boot thymeleaf 图像

2024-03-23

我正在尝试开发用于发送电子邮件的 Spring Boot 应用程序。一切都很好,但是在模板 thymeleaf 中,当我尝试添加图像时,它显示错误。 这是我的 template.html 的一个片段

 <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:remove="all">Order Confirmation</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<div>

    <h2 th:text="${title}">title</h2>
    <p th:utext="${description}">
            description
    </p>

    <br />
    <br />
    <br />
    <p>Bien cordialement</p>
    <div>
        <img th:src="@{/img/signature.png}" />

    </div>
</div>

</body>
</html>

这是错误:

 ERROR [[/jira-rct/v1.0].[dispatcherServlet]] [http-nio-8080-exec-1] Servlet.service() for servlet [dispatcherServlet] in context with path [/jira-rct/v1.0] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Link base "/img/crm-signature.png" cannot be context relative (/) or page relative unless you implement the org.thymeleaf.context.IWebContext interface (context is of class: org.thymeleaf.context.Context) (email/template-1:20)] with root cause
org.thymeleaf.exceptions.TemplateProcessingException: Link base "/img/crm-signature.png" cannot be context relative (/) or page relative unless you implement the org.thymeleaf.context.IWebContext interface (context is of class: org.thymeleaf.context.Context) (email/template-1:20)
    at org.thymeleaf.standard.expression.LinkExpression.executeLink(LinkExpression.java:270) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:77) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:103) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:133) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:120) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.standard.processor.attr.AbstractStandardSingleAttributeModifierAttrProcessor.getTargetAttributeValue(AbstractStandardSingleAttributeModifierAttrProcessor.java:67) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.spring4.processor.attr.SpringSrcAttrProcessor.getTargetAttributeValue(SpringSrcAttrProcessor.java:68) ~[thymeleaf-spring4-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.processor.attr.AbstractSingleAttributeModifierAttrProcessor.getModifiedAttributeValues(AbstractSingleAttributeModifierAttrProcessor.java:59) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.processor.attr.AbstractAttributeModifierAttrProcessor.processAttribute(AbstractAttributeModifierAttrProcessor.java:62) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1017) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.Node.processNode(Node.java:972) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.4.RELEASE.jar:2.1.4.RELEASE]

此致


对我来说这有效;只需删除“/”

<img th:src="@{img/signature.png}"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot thymeleaf 图像 的相关文章

随机推荐

  • 右值 hello world 缺少构造函数

    我试图了解更多有关右值引用的信息 但我陷入了这个最简单的示例 include
  • java 14 nullpointerException没有详细消息

    Java 14 有许多新特性 其中之一是在 NullPointerException 中显示详细消息 我安装了 Java 14 并尝试在类下编译和运行 但没有收到任何详细消息 我错过了什么吗 请帮忙 code demo temp java
  • 内存管理:NSString的stringWithCString:encoding:

    假设我从某个函数获取一个 C 字符串 char mystring SomeCFunction 我拥有这个字符串 我负责在完成后释放它 如果在 Objective C 中 我创建一个NSString using NSString mynsst
  • Laravel 5.1 iframe 中的 CSRF,如何使其工作?

    我的应用程序有一个插件 用户可以在包含表单的网站中实现该插件 问题是我得到TokenMismatchException提交表格时 从我所做的所有研究中 我可以看到 Laravel 对跨域的保护 我知道我可以禁用它 但我不知道之后如何保护表单
  • Python Selenium driver.implicitly_wait(30)

    我们使用 VM 进行开发 并使用 Jenkins 作为套件 今天早上 我们在硒测试中遇到了以前从未发生过的问题 在粘贴代码之前 重要的是要知道 selenium 测试在我的机器上有效 但在 Jenkins 上失败 而且它已经工作了一个月 c
  • 如何使用 selenium 执行网页上的所有 javascript 内容,以在完全加载的网页上查找并发送登录表单信息

    我一直在尝试制作一个 Python 脚本来登录某个网站 浏览菜单 填写表单并将其生成的文件保存到文件夹中 我一直在使用 Selenium 尝试使网站完全加载 以便我可以找到登录的元素 但我没有成功 可能是因为网站在完全加载之前执行了大量 J
  • 自定义架构名称的宏不适用于 dbt 包

    我在 dbt 包中使用自定义架构名称时遇到问题 我使用中提供的宏数据库测试文档 https docs getdbt com docs building a dbt project building models using custom s
  • 如何使用 HQL 返回 Map

    我有一张桌子 允许 id name desc 我现在在做什么 是进行返回权限对象的查询 然后以编程方式将值放入映射中 1 但我想知道是否可以制作 HQL 如果不可能 则制作本机 sql 来选择权限ID 权限名称并将它们返回到地图中 2 是否
  • 为什么 Azure Function v2 无法绑定到 CloudTable?

    我正在尝试在 Visual Studio 2019 中运行 HTTP 触发的 v2 函数 应该是写出它的输出存储到名为 历史记录 的 Azure 存储表中 我用以下方法装饰了我的函数 return Table history 我让它返回一个
  • 无法反序列化 ActorRef 以将结果发送到不同的 Actor

    我开始使用 Spark Streaming 来处理我收到的实时数据源 我的场景是 我有一个使用 with ActorHelper 的 Akka actor 接收器 然后我让 Spark 作业执行一些映射和转换 然后我想将结果发送给另一个 a
  • 即使未移动,Motionevent Action_MOVE 仍会持续触发 X 和 Y

    我正在尝试一个简单的程序 如果移动的话 它会发出声音 所以一开始我就下了 播放声音 1 从那时起 每一个动作都会持续播放声音 在计数 4 时 我已经从头开始播放了 问题是 当我不移动手指并将其放在同一个地方时 声音仍然保持 1 x 1 计算
  • 有没有办法自动将Matlab 中的结果或数据导入到Mathematica 中?

    有没有办法将结果或数据 例如矩阵 从Matlab导入到Mathematica自动地 或者有什么方法可以先运行Matlab程序 然后运行Mathematica程序自动地 感谢您提供任何有用的答案 至少有三种方法可以解决这个问题 通过 Java
  • Actors 中 future 的执行上下文

    我有一个 Actor 并且在某些消息上我正在运行一些返回 Future 的方法 def receive Receive case SimpleMessge gt val futData Future Int futData map data
  • json_encode 输出对象而不是某些元素的数组

    我有这个数组 我想将其编码为 json Array 0 gt Array 0 gt Hour 1 gt bteam pvp 2 gt crackpack 3 gt tppi 4 gt agrarian plus 5 gt agrarian2
  • protobuf 取出部分数据的安全性如何?

    在没有任何加密的情况下 如果接收者拥有序列化的 Protobuf 文件 但没有生成的 Protobuf 类 他们无权访问定义其结构的 proto 文件 他们是否有可能获取 Protobuf 中的任何数据来自二进制文件 如果他们有权访问 pr
  • CFBundleVersion 必须高于以前的版本

    我正在提交我的一个应用程序的更新 我已经用我开发的许多不同的应用程序完成了数十次这样的操作 但是这个应用程序由于某种奇怪的原因而失败了 我存档我的应 用程序 然后尝试验证存档并收到以下错误消息 该捆绑包无效 Info plist 文件中的关
  • 在 python 中生成非子进程

    我需要在 python 中创建一个进程 允许调用进程在子进程仍在运行时退出 什么是有效的方法来做到这一点 注意 我在 UNIX 环境上运行 在类 Unix 操作系统中 终止父进程不会终止子进程 因此您不需要执行任何特殊操作 只需启动你的子流
  • React'findNodeHandle 方法停止工作

    升级到后0 26 0 rc版本 这一行 React findNodeHandle this refs myRef 抛出此错误消息 未处理的 JS 异常 react2 default findNodeHandle 不是 功能 我用这个导入 R
  • 在父类中访问子类变量

    在父类中访问子类的变量是否正确 这是一种好的 OOP 方法吗 我不需要创建 Animal 类的实例 但如果我愿意的话 make sound方法会提高AttributeError 这让我很困扰 class Animal def make so
  • Spring Boot thymeleaf 图像

    我正在尝试开发用于发送电子邮件的 Spring Boot 应用程序 一切都很好 但是在模板 thymeleaf 中 当我尝试添加图像时 它显示错误 这是我的 template html 的一个片段 div h2 title h2 div