我在Web项目中使用Spring Boot,我想使用静态内容缓存功能 .
在application.properties中使用ContentVersionStrategy和以下配置
spring.resources.chain.enabled=true
spring.resources.chain.cache=true
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
和Thymeleaf html这样的资源
<script src="@{/js/app.js}"></script>
我得到MD5哈希附加到文件名,但如果我对该文件进行更改,内容会更改,但哈希值仍然相同 .
如果文件内容更改,则在每个请求上进行哈希“重新加载”的唯一方法是设置:
spring.resources.chain.cache=false
但我认为错过了使用Spring功能的重点 . 这是正常行为吗?
1 回答
这是正常行为 .
在 生产环境 环境中,您希望缓存查找 . 但在开发过程中,您可能不会(如果您正在迭代编辑JavaScript文件) .
设置
spring.resources.chain.cache=true
将创建一个ResourceResolver
实现链,其中CachingResourceResolver
将委托给ResourceResolvers链,并缓存结果 .