Dev*_*per 7 asp.net-mvc caching asp.net-core
我尝试在 asp.net core 项目中实现响应缓存,但它不起作用。这是 startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddResponseCaching();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseResponseCaching();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器。
[ResponseCache(Duration = 30)]
public IActionResult Index()
{
ViewBag.IsMobile = RequestExtensions.IsMobileBrowser(ContextAccessor.HttpContext.Request);
return View();
}
Run Code Online (Sandbox Code Playgroud)
但仍然缓存控制标头 id
cache-control ?no-cache, no-store
Run Code Online (Sandbox Code Playgroud)
我缺少的地方请帮助。此响应缓存不起作用,我从 Microsoft 文档中获取指导
请注意,缓存工作必须满足许多要求:
该请求必须导致来自服务器的 200 (OK) 响应。
请求方法必须是 GET 或 HEAD。
终端中间件,例如静态文件中间件,不得在响应缓存中间件之前处理响应。
不得存在 Authorization 标头。
Cache-Control 标头参数必须有效,并且响应必须标记为 public 而不是标记为 private。
如果 Cache-Control 标头不存在,则 Pragma: no-cache 标头/值不得存在,因为 Cache-Control 标头在存在时会覆盖 Pragma 标头。Set-Cookie 标头不得存在。
Vary 标头参数必须有效且不等于 *。
Content-Length 标头值(如果设置)必须与响应正文的大小匹配。
...
请参阅此网站:aspnet-core-response-cache
还要注意,如果请求是从 Postman 发出的,请禁用“不发送缓存标头”选项。
请参阅此帖子(结束帖子的图片): ASP.Net Core 2.0 - ResponseCaching Middleware - Not Caching on Server
归档时间: |
|
查看次数: |
4817 次 |
最近记录: |