gpt4 book ai didi

spring - 为什么 spring boot 将 Expires header 设置为 Expires :?

转载 作者:行者123 更新时间:2023-12-01 06:22:04 27 4
gpt4 key购买 nike

我正在尝试缓存控制所有静态 css/js 文件。代码看起来像:

  @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/console/*.js","/console/*.css","/console/*.png","/console/*.svg")
.addResourceLocations(
ResourceUtils.CLASSPATH_URL_PREFIX + "/public/console/"

).setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS).cachePublic());
}

我可以看到 Cache-Control header 已正确设置。但为什么 Expires 总是空白?我期望所有 css/js 的刷新应该返回 304 Not Modified 而不是 200 OK?

知道为什么吗?谢谢

最佳答案

Expires 不再需要,最新版本的 Spring 采用了前端缓存的最佳实践(参见 CacheControloriginal commit)。

现在,如果您没有获得预期的结果,可能是因为您的浏览器正在发送一个 Cache-Control: no-cache 请求 header 。如果您在浏览器开发人员工具中选中了“禁用缓存”复选框,或者如果您使用“ctrl+R”刷新页面,通常会发生这种情况。

如果这与 Spring Security 相关,您可能需要订阅 this issue并使用 the following workaround

如果没有,请在您的问题中提供更多信息(请求和响应 header 是一个好的开始)。

关于spring - 为什么 spring boot 将 Expires header 设置为 Expires :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45860033/

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