作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从这里 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 何时发生变化时似乎更奇怪,我认为我的缓存标题把它搞砸了。
@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
关于spring-boot - 如何有选择地禁用 Spring 启动缓存(manifest.appcache),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216742/
我是一名优秀的程序员,十分优秀!