如何让 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/
我很难弄清楚如何让 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/