org.thymeleaf.exceptions.TemplateInputException

时间:2015-03-30 23:15:29

标签: spring spring-boot thymeleaf

我的Spring 4 / Thymeleaf设置存在一些严重问题。这是错误消息:

Error resolving template "public/bootstrap/js/bootstrap.min", template might not exist or might not be accessible by any of the configured Template Resolvers

出于某种原因,Spring或Thymeleaf将css和js视为不是静态的,并试图像处理请求一样处理它们。我有3个模板解析器:

    @Bean()
public TemplateResolver templateResolver() {
    ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
    resolver.setPrefix("/WEB-INF/templates/");
    resolver.setSuffix(".html");
    resolver.setTemplateMode("HTML5");
    resolver.setCacheable(false);
    resolver.setOrder(0);
    return resolver;
}

@Bean()
public TemplateResolver publicTemplateResolver() {
    ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
    resolver.setPrefix("/WEB-INF/templates/default/");
    resolver.setSuffix(".html");
    resolver.setTemplateMode("HTML5");
    resolver.setCacheable(false);
    resolver.setOrder(1);
    return resolver;
}

@Bean()
public TemplateResolver customPublicTemplateResolver() {
    ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
    resolver.setPrefix("/WEB-INF/templates/custom/");
    resolver.setSuffix(".html");
    resolver.setTemplateMode("HTML5");
    resolver.setCacheable(false);
    resolver.setOrder(2);
    return resolver;
}

正在提供页面,唯一的问题是css和js不是。我收到了.html文件中包含的每个css和js的错误。我确实将测试css文件移动到试图访问它的每个可能的目录,但我现在已经没有想法了。请让我知道我做错了什么以及是否需要进一步配置。

编辑03/31/2015

的src /主/ web应用/模板/默认/ page99.html

    <!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Insert title here</title>
    <link rel="stylesheet" type="text/css" media="all" href="resources/css/main.css"/>
</head>
<body>
<h1 th:text="${content.title}"> PAGE 99 (/templates/default/page99.html)</h1>
<p th:text="${content.body}">This is dummy content</p>
</body>
</html>

css是一个只设置背景颜色的简单文件,因此我可以看到它正常工作。

1 个答案:

答案 0 :(得分:0)

当您引用服务器上的项目时,您应该在相应的百万富翁属性中使用百日咳@方法。

像:

<link th:href="@{/css/style.css}" href="style.css" rel="stylesheet" type="text/css"/>

这会为您生成正确的网址。 在我的情况下,css在src / main / resources / static / css / style.css