1. 概述
- spring 配合 thymeleaf 关闭页面缓存
2. 背景
-
最近复习 spring
-
找了本书叫 spring in action 5th
- 本人水平有限
- 书还写得那么难
-
调试中遇到了问题
- 问题1: 我每次改代码, 都要重启
- 问题2: 我每次改页面, 都要重启
-
因为 问题2 对我来说, 优先级最高, 我首先解决它
3. 环境
-
os
- win10
-
jdk
- 1.8
-
ide
- ida 2018.1
-
spring
- spring boot
- 2.1.7 release
- 组件
- thymeleaf
- starter-web
- devtool
- starter-test
- spring boot
-
browser
- firefox
- 70.0
- firefox
-
ref
- spring in action 5th
4. 问题
-
期望
- 在 ide 修改页面
- 在浏览器直接刷新, 就能看到页面调整
-
需要保证
- 浏览器的正确配置
- 浏览器
- 确保每次请求, 都是新鲜的页面
- 浏览器
- spring 和 thymeleaf 的正确配置
- spring
- 确保 thymeleaf 的修改能及时
- spring
- 浏览器的正确配置
5. 问题解决
-
浏览器
-
思路1: 每次访问后清空缓存
- 结果
- 否决
- 太麻烦了
- 否决
- 结果
-
思路2: 通过浏览器配置, 确保每次请求, 都是新页面
-
结果
- 这个方案不错
- 而且也有配置项可以做到
- 因为很顺利, 就不细说了, 照着配置一步步来就行
-
ref
-
-
-
thymeleaf
- 思路: 找到配置项, 配置一下就好了
-
结果
- 妈的找死我了
- 百度了好多, 都没用
-
千篇一律, 只有一条参数
spring.thymeleaf.cache=false
-
结果配置了根本不生效
-
这感觉太难受了, 真的想骂人
-
-
最后结果
- ref
-
Thymeleaf templates cache even when spring.template.cache: false
-
一个叫 oak1980 的丹麦老哥, 给了一个配置如下
# Templates reloading during development spring.thymeleaf.prefix=file:src/main/resources/templates/ spring.thymeleaf.cache=false # Static resources reloading during development spring.resources.static-locations=file:src/main/resources/static/ spring.resources.cache-period=0
-
-
按照这个老哥的做法, 配置终于生效
-
- ref
-
- 思路: 找到配置项, 配置一下就好了
ps
-
妈的为啥我百度的头几个, 没有一个把事说明白
- 大部分只给了 cache = false 的那条配置
- 其他提到 prefix 的, 还都把 prefix 注释了
- 配置的 ide, 组件, 版本也没有
- 找了好半天, 问题是这种都是调试常识之类的东西
-
spring 如何确认运行阶段生效了哪些配置项
- 这个找了半天, 也没找到
- 我总觉得可以...