spring - org.thymeleaf.exceptions.TemplateInputException 异常

标签 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 文件移动到每个可能的目录以尝试访问它,但此时我没有想法。请让我知道我做错了什么以及是否需要进一步配置。

编辑 2015 年 3 月 31 日

src/main/webapp/templates/default/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 是一个简单的文件,它只设置背景颜色,这样我就可以看到它工作了。

最佳答案

当您引用服务器上的项目时,您应该在相应的 thymeleaf 属性中为此使用 thymeleaf @ 方法。

喜欢:

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

这会为您生成正确的 URL。 在我的例子中,css 在 src/main/resources/static/css/style.css

关于spring - org.thymeleaf.exceptions.TemplateInputException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357968/

相关文章:

java - 从命令行加载 spring 上下文的属性

java - 通过某些组件名称模式将组件/类加载到 ArrayList 中

spring-boot - 在配置中定义类型为 'com.netflix.discovery.AbstractDiscoveryClientOptionalArgs' 的 bean

css - 将 Materials-UI 添加到 Spring + thymeleaf 元素

Spring oauth2 InsufficientAuthenticationException

java - 创建名为 'entityManagerFactory' 的 bean 时出错 - 启动错误

spring - 未找到多部分边界

java - 在 JBOSS EAP 6.1 上部署 spring boot

excel - 无法使用 Spring Boot 和 Apache POI 正确生成 Excel 文件

java - Thymeleaf 忽略未找到的片段