【问题标题】:Spring Boot cache with ContentVersionStrategy带有 ContentVersionStrategy 的 Spring Boot 缓存
【发布时间】:2018-03-15 04:19:03
【问题描述】:

我在一个 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 功能的意义。 这是正常行为吗?

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

【问题讨论】:

    标签: java spring spring-mvc caching spring-boot


    【解决方案1】:

    这是正常行为。

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

    设置spring.resources.chain.cache=true 将创建带有CachingResourceResolverResourceResolver 实现链,该CachingResourceResolver 将委托给ResourceResolvers 链,并缓存结果。

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 2017-02-22
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 2018-06-03
      • 2016-10-13
      • 1970-01-01
      相关资源
      最近更新 更多