Из этого вопроса видно, что Spring Security управляет кешем для весенней загрузки. Из весенней загрузки документации он показывает, как установить кеш для ресурсов, используя:
spring.resources.cache-period= # cache timeouts in headers sent to browser
cache-period
отлично подходит для всех предопределенных статических местоположений для весенней загрузки (т.е. /css**
, /js/**
, /images/**
), но я также создаю manifest.appcache
для автономной загрузки моих статических ресурсов и из-за всех вышеперечисленных весенних безопасности / загрузки отправляет обратно заголовки кеша с манифестом.appcache
"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 случая с о потенциально нарушить остальную часть того, что весенняя загрузка устанавливает в этом файле.
@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);
}
}
WebMvcConfigurerAdapter
, и добавление определенного правила для этого ресурса должно помочь. - person M. Deinum   schedule 06.10.2014@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { super.addResourceHandlers(registry); registry.addResourceHandler("/manifest.appcache").addResourceLocations("/").setCachePeriod(0); }
но я получаю 404. - person JimB   schedule 08.10.2014/
заставит его попытаться получить данные из корня веб-приложения. Убедитесь, что / закрывает правильное физическое расположение файла. - person M. Deinum   schedule 08.10.2014/public
, который находится в том же месте, что и index.html. - person JimB   schedule 08.10.2014/public
, а не/
. - person M. Deinum   schedule 09.10.2014