Thymeleaf:相对网址 - 没有webcontext

时间:2018-02-23 10:56:09

标签: spring thymeleaf

我得到了这个臭名昭着的错误:

  除非您实现,否则

不能是上下文相对(/)或页面相对   IWebContext

我有一个创建pdf文件的spring boot应用程序(没有web模块)。

我打算使用HTML文件作为模板,但由于这些网址问题,我无法正确链接css文件和图像。

Html:

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">

  <head>
    <title>Vulog Invoice</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" media="all" 
          href="./css/vulog.css" th:href="@{./css/vulog.css}"/>
  </head>
  <body>
    <p th:utext="#{home.welcome}">Welcome !</p>
     <img src="/images/gtvglogo.png" th:src="@{/images/gtvglogo.png}"/>
  </body>    
</html>

文件夹结构:

src/main/resources/templates/sample.html
src/main/resources/templates/css/sample.css

我google了一下,但我不想通过IWebContext解决这个问题。 还有另一种方式吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

org.thymeleaf.exceptions.TemplateProcessingException:链接库   “ / a / relative / link”不能为上下文   相对(/ ...),除非用于执行引擎的上下文   实现org.thymeleaf.context.IWebContext接口(模板:   “模板/模板”-第6行,第13列)

     org.thymeleaf.linkbuilder.StandardLinkBuilder.computeContextPath上的

1   (StandardLinkBuilder.java:493)

     

...

org.thymeleaf.linkbuilder.StandardLinkBuilder引发异常。通过为TemplateEngine提供org.thymeleaf.linkbuilder.ILinkBuilder的另一种实现,我们可以避免这种误解

TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setLinkBuilder(new ILinkBuilder() {

    @Override
    public String getName() {
        return null;
    }

    @Override
    public Integer getOrder() {
        return null;
    }

    @Override
    public String buildLink(IExpressionContext context, String base, Map<String, Object> parameters) {
        return null;
    }
});