首页 问答 ASP.NET Core Minimal APIs 的 Output Cache 不起作用
问题详情

注册了 output cache 服务

services.AddOutputCache();

添加了 output cache middleware

app.UseOutputCache();

在下面的 Minimal API 通过 CacheOutput 配置了 output cache

app.MapGet("/sitemap.xml", ProduceRootSitemapAsync)
    .CacheOutput(builder => builder.Expire(TimeSpan.FromMinutes(10)));

但运行时 output cache 没有生效,请问如何解决这个问题?

回答

请求头里面不能包含no-cache, no-store,然后 UseOutputCache放在UseRouting 之后,或者针对xml指定特别的策略:builder.Services.AddOutputCache(options =>
{
options.AddPolicy("SitemapPolicy", policy =>
{
policy.Expire(TimeSpan.FromMinutes(10))
.SetVaryByAccept() // 重要:区分 XML 和 HTML
.SetVaryByHeader("Accept-Encoding");
});
});
app.MapGet("/sitemap.xml", ProduceRootSitemapAsync)
.CacheOutput("SitemapPolicy");

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/2546.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站