问题:
项目使用 :spring boot + thymeleaf + vue.js
找了个简单的spring boot 模板,application中配置了简单的server的属性,页面放在resource中,
我发现我无论怎么修改页面 浏览器刷新的页面都是不动的,重启一下服务就好了。
但是静态页面貌似不需要刷新,没有显示出来我就怀疑跟这个thymeleaf有关 它可能需要编译导致没有及时刷出新的
效果出现。
方案:
在pom文件中引入热部署
<!--Spring 官方提供的热部署插件 Start-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--Spring 官方提供的热部署插件 End-->
原理:
Spring Boot 支持的一些库中会使用缓存来提高性能。例如模版引擎将缓存编译后的模板,以避免重复解析模板文件。 此外,Spring MVC可以在服务静态资源时向响应中添加HTTP缓存头。
虽然缓存在生产中非常有益,但它在开发过程中可能会产生反效果,它会阻止你看到刚刚在应用程序中进行的更改。 因此,spring-boot-devtools将默认禁用这些缓存选项。
缓存选项通常在application.properties文件中配置。 例如,Thymeleaf提供了spring.thymeleaf.cache属性。
spring-boot-devtools模块不需要手动设置这些属性,而是自动应用合理的开发时配置