如何让 Thymeleaf 处理静态文件夹中的 html?

How to get Thymeleaf to process html in the static folder?

我很难弄清楚如何让 Thymeleaf 在

中处理 index.html
src/main/resources/static 

Thymeleaf 无需配置即可在模板目录中完美运行:

src/main/resources/templates

环境是 Spring 使用 Maven 启动。它使用 Yeoman 来编译 index.html、CSS 和 JS。我需要所有这些文件都在同一个目录树中。

IDK 如果这些信息足够了,但下面是我的 ThymeleafConfig:

package org.jeremu.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;

import java.util.HashSet;
import java.util.Set;

@Configuration
public class ThymeleafConfig {

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        Set<ITemplateResolver> resolvers = new HashSet<ITemplateResolver>();
        resolvers.add(defaultWebTemplateResolver());
        resolvers.add(emailTemplateResolver());
        templateEngine.setTemplateResolvers(resolvers);
        return templateEngine;
    }

    @Bean
    public ClassLoaderTemplateResolver defaultWebTemplateResolver(){
        ClassLoaderTemplateResolver webTemplateResolver = new ClassLoaderTemplateResolver();
        webTemplateResolver.setPrefix("static/");
        webTemplateResolver.setSuffix(".html");
        webTemplateResolver.setTemplateMode("HTML5");
        webTemplateResolver.setCharacterEncoding("UTF-8");
        webTemplateResolver.setOrder(2);
        return webTemplateResolver;
    }

    @Bean
    public ClassLoaderTemplateResolver emailTemplateResolver(){
        ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
        emailTemplateResolver.setPrefix("templates/email/");
        emailTemplateResolver.setSuffix(".html");
        emailTemplateResolver.setTemplateMode("HTML5");
        emailTemplateResolver.setCharacterEncoding("UTF-8");
        emailTemplateResolver.setOrder(1);

        return emailTemplateResolver;
    }

    @Bean
    ViewResolver viewResolver(){
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        resolver.setOrder(1);
        return resolver;
    }
}

尝试在您的 application.properties 文件中使用此设置:

spring.thymeleaf.prefix=classpath:/static/