弹簧靴和百里香 - 再次热交换模板和资源
我尝试了我在这里和文档中找到的所有提示和技巧,但仍然没有运气。我有Spring Webapp与Thymeleaf。当我在IDEA中调用update时,资源和模板不会重新加载(它没有说要重新加载)。然后,我可以像疯了一样在浏览器中按ctrl + f5,更改只是不存在。
所有内容都配置在一个Java类中,如下所示:
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware {
我的文件夹结构现在看起来像这样,但我也尝试将资源放在没有“静态”文件夹或webapp/resources的地方。
ResourceHandlerRegistry:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/img/**").addResourceLocations("classpath:/static/img/");
registry.addResourceHandler("/css/**").addResourceLocations("classpath:/static/css/");
registry.addResourceHandler("/js/**").addResourceLocations("classpath:/static/js/");
}
我在两个应用程序中都指定了 cache=false. properties:
spring.thymeleaf.cache=false
在提到的MvcConfig类中:
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(this.applicationContext);
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(false);
return templateResolver;
}
根据SO的一些答案,我为devtools添加了依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>1.4.1.RELEASE</version>
<optional>true</optional>
</dependency>
仍然无法正常工作。有人说要添加带有addResources=true的maven引导插件,所以我做了:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.1.RELEASE</version>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
我猜我的想法设置正确,因为当我调用update时,我的Java类会立即重新加载。只有资源和html文件不是,我必须重新启动服务器。实际上*.html文件并不是什么大问题,但是在每次小的css和js更改之后重新启动服务器会让我放慢很多速度,并且由于我失去了近15个小时来找出问题所在,它开始变得非常令人沮丧。
任何帮助将不胜感激。