需要重新启动 tomcat 以进行 html 更改
Need restart tomcat for html changes
我正在 运行 tomcat 8 项目中使用 eclipse。我正在使用 Spring MVC + Thymeleaf。我在 Gradle 中有 war 插件,所以每次我更改 java class 时,它会自动创建新的 WAR 文件并将其部署在 tomcat.
问题是当我更改 HTML 文件时,我必须重新启动 tomcat 才能看到更改。另一个使用 JSF 的项目没有发生的事情,如果我更改 xhtml,我可以看到新的东西只是刷新浏览器。
问题是,每次更改 HTML 或 CSS 文件时,是否都必须重新启动 Tomcat?这对我来说没有意义。
配置模板引擎时需要禁用缓存
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
...
<property name="cacheable" value="false"/>
</bean>
让我知道这是否适合你
尝试exploded war
。如果您使用 .war
文件,则需要为每次更改重新部署(据我所知)。
问题是 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;
}
我在 answer 的 Spring 引导线程中找到了这个。
我正在 运行 tomcat 8 项目中使用 eclipse。我正在使用 Spring MVC + Thymeleaf。我在 Gradle 中有 war 插件,所以每次我更改 java class 时,它会自动创建新的 WAR 文件并将其部署在 tomcat.
问题是当我更改 HTML 文件时,我必须重新启动 tomcat 才能看到更改。另一个使用 JSF 的项目没有发生的事情,如果我更改 xhtml,我可以看到新的东西只是刷新浏览器。
问题是,每次更改 HTML 或 CSS 文件时,是否都必须重新启动 Tomcat?这对我来说没有意义。
配置模板引擎时需要禁用缓存
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
...
<property name="cacheable" value="false"/>
</bean>
让我知道这是否适合你
尝试exploded war
。如果您使用 .war
文件,则需要为每次更改重新部署(据我所知)。
问题是 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;
}
我在 answer 的 Spring 引导线程中找到了这个。