gpt4 book ai didi

spring-boot - 如何有选择地禁用 Spring 启动缓存(manifest.appcache)

转载 作者:行者123 更新时间:2023-12-04 23:49:25 24 4
gpt4 key购买 nike

从这里 question它表明 spring security 管理 spring boot 的缓存。从 Spring Boot documentation它显示了如何使用以下方法为资源设置缓存:

spring.resources.cache-period= # cache timeouts in headers sent to browser
cache-period非常适合 spring boot 的所有预定义静态位置(即 /css**/js/**/images/** ),但我也生成了 manifest.appcache用于离线下载我的静态 Assets ,并且由于上述所有 spring security/boot 发送回带有 manifest.appcache 的缓存 header
"method": "GET",
"path": "/manifest.appcache",
"response": {
"X-Application-Context": "application:local,flyway,oracle,kerberos:8080",
"Expires": "Tue, 06 Oct 2015 16:59:39 GMT",
"Cache-Control": "max-age=31556926, must-revalidate",
"status": "304"
}

我想知道如何为 manifest.appcache 添加排除项.无论我的标题如何,IE 和 Chrome 似乎都对 appcache '做正确的事情',但是 FF 在注意到 appcache 何时发生变化时似乎更奇怪,我认为我的缓存标题把它搞砸了。

编辑:
我应该从来源添加 WebMvcAutoConfiguration它显示了资源的缓存是如何设置的,我只是不确定如何有选择地禁用我的 1 个案例,而没有可能破坏 spring boot 在此文件中设置的其余部分。
    @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
return;
}

Integer cachePeriod = this.resourceProperties.getCachePeriod();
if (!registry.hasMappingForPattern("/webjars/**")) {
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/")
.setCachePeriod(cachePeriod);
}
if (!registry.hasMappingForPattern("/**")) {
registry.addResourceHandler("/**")
.addResourceLocations(RESOURCE_LOCATIONS)
.setCachePeriod(cachePeriod);
}
}

最佳答案

基于 this answer详细说明 IE 需要“max-age=1, must-revalidate”,并通过在所有浏览器上进行测试,将属性值设置为

spring.resources.cache-period=1

将允许写入正确的 http header ,从而允许正确处理 appcache list 。这不是我希望的解决方案(能够将缓存周期设为 0 并带有正确的 header 是我想要的),但它确实使浏览器正确执行并正确利用 appcache list 。

再次总结解决方案上下文 - 这是我的应用程序,它离线下载我的所有 Assets (js/css/html) 并从 appcache 提供服务。

关于spring-boot - 如何有选择地禁用 Spring 启动缓存(manifest.appcache),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com