如何禁用 micronaut 的静态内容缓存?

How to disable static content caching of micronaut?

我创建了一个提供一些静态文件的应用程序,但是在开发过程中,服务器缓存静态内容而不是返回磁盘上的内容,这真的很烦人。是的,使用 ./gradlew run --continuous 的开发模式是次优的。

我想知道是否有 属性 配置或我可以做的事情来禁用静态内容缓存,以便在我的开发配置文件中设置它。

您可以通过

控制缓存秒数和缓存控制 headers

https://docs.micronaut.io/latest/guide/configurationreference.html#io.micronaut.http.server.netty.types.files.FileTypeHandlerConfiguration

https://docs.micronaut.io/latest/guide/configurationreference.html#io.micronaut.http.server.netty.types.files.FileTypeHandlerConfiguration$CacheControlConfiguration

正如在其他答案的评论中所讨论的那样,使用 netty.responses.file.cache-seconds 和类似的属性不起作用,因为它只控制浏览器缓存。

问题是,当您使用 ./gradlew run --continuous 并且将 micronaut.router.static-resources.my-resources.paths 设置为 classpath:public/ 之类的东西时,将会发生的事情是 micronaut,当然,会读取来自类路径,仅当构建为 运行 时才会更改。为了在不重建应用程序的情况下使用当前的开发版本,您应该使用类似的东西:

micronaut:
  router:
    static-resources:
      shared-static:
        enabled: true
        mapping: /public/**
        paths:
          - file:src/main/resources/public

通过在您的开发配置文件中执行此操作,您将始终获得 micronaut 呈现的最新版本。

如果浏览器缓存 是一个问题,那么您应该将此答案与 .

结合起来