首页 文章

带有ContentVersionStrategy的Spring Boot缓存

提问于
浏览
0

我在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功能的重点 . 这是正常行为吗?

Spring docs:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

1 回答

  • 0

    这是正常行为 .

    在 生产环境 环境中,您希望缓存查找 . 但在开发过程中,您可能不会(如果您正在迭代编辑JavaScript文件) .

    设置 spring.resources.chain.cache=true 将创建一个 ResourceResolver 实现链,其中 CachingResourceResolver 将委托给ResourceResolvers链,并缓存结果 .

相关问题