我正在使用tomcat 8运行的项目中使用eclipse。我正在使用Spring MVC + Thymeleaf。我在Gradle中有war插件,因此每次更改java类时,它都会自动创建新的WAR文件并将其部署在tomcat中。
问题是当我更改HTML文件时,我必须重新启动tomcat才能看到更改。使用JSF的另一个项目不会发生的事情,如果我更改了一个xhtml,我可以看到新的东西只是刷新浏览器。
问题是,每次更改HTML或CSS文件时是否必须重新启动Tomcat?这对我没有意义。
答案 0 :(得分:2)
配置模板引擎时需要禁用缓存
Task::Task(gdt *GlobalDescriptorTable, void entrypoint())
{
/*Stuff Happenes Here.. But i Minimized it*/
}
请告诉我这是否适合您
答案 1 :(得分:0)
试试exploded war
。如果您使用.war
文件,则需要重新部署每个更改(据我所知)。
答案 2 :(得分:0)
问题是Thymeleaf缓存。您可以使用setCacheable
在配置中禁用它。这适用于Thymeleaf 3 +:
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding(UTF8);
return viewResolver;
}
private TemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setEnableSpringELCompiler(true);
engine.setTemplateResolver(templateResolver());
return engine;
}
private ITemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(applicationContext);
resolver.setPrefix("/WEB-INF/templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setCharacterEncoding("UTF-8");
resolver.setCacheable(false);
return resolver;
}
我在Spring引导线程中的answer中找到了这个。