SpringBoot Thymeleaf找不到CSS

qhhrdooz  于 2023-05-22  发布在  Spring
关注(0)|答案(1)|浏览(156)

我有一个问题与spring-boot-thymeleaf 2.7.10版本。问题是thymeleaf找不到指定模板的CSS。文件结构为

|  +--static/
|  |  +--css/
|  +--templates/
|  |  +--mail/
|  |  |

TemplateEngine配置为

@Bean
public SpringResourceTemplateResolver templateResolver() {
    SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
    templateResolver.setApplicationContext(this.applicationContext);
    templateResolver.setCharacterEncoding("UTF-8");
    templateResolver.setPrefix("classpath:/templates/mail/");
    templateResolver.setCacheable("classpath:/templates/mail/".startsWith("classpath:/"));
    return templateResolver;
}

当我尝试导入CSS文件在我的HTML模板使用

<link rel="stylesheet" type="text/css" media="all" th:href="@{/css/styles.css}" href="../../../../../static/css/styles.css">

我得到一个错误

org.thymeleaf.exceptions.TemplateProcessingException: Link base "/css/styles.css" cannot be context relative (/...) unless the context used for executing the engine implements the org.thymeleaf.context.IWebContext interface

我在stackOverwlow中看到许多答案建议使用这样的定义,但对我不起作用。如何正确导入css到thymeleaf模板?

5w9g7ksd

5w9g7ksd1#

你是用电子邮件发的吗
在这种情况下不能使用context relative链接--这是您的问题中显示的错误。当用户在gmail中打开这封邮件,浏览器试图解析mail.google.com/css/styles.css时,你认为会发生什么?
你必须使用一个到你的css的绝对链接,或者在你的电子邮件中包括css的整个正文。

相关问题