如何禁用 micronaut 的静态内容缓存?
How to disable static content caching of micronaut?
我创建了一个提供一些静态文件的应用程序,但是在开发过程中,服务器缓存静态内容而不是返回磁盘上的内容,这真的很烦人。是的,使用 ./gradlew run --continuous
的开发模式是次优的。
我想知道是否有 属性 配置或我可以做的事情来禁用静态内容缓存,以便在我的开发配置文件中设置它。
您可以通过
控制缓存秒数和缓存控制 headers
和
正如在其他答案的评论中所讨论的那样,使用 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 呈现的最新版本。
如果浏览器缓存 也 是一个问题,那么您应该将此答案与 .
结合起来
我创建了一个提供一些静态文件的应用程序,但是在开发过程中,服务器缓存静态内容而不是返回磁盘上的内容,这真的很烦人。是的,使用 ./gradlew run --continuous
的开发模式是次优的。
我想知道是否有 属性 配置或我可以做的事情来禁用静态内容缓存,以便在我的开发配置文件中设置它。
您可以通过
控制缓存秒数和缓存控制 headers和
正如在其他答案的评论中所讨论的那样,使用 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 呈现的最新版本。
如果浏览器缓存 也 是一个问题,那么您应该将此答案与