我使用Visual Studio 2017创建了一个asp.net核心mvc 2.1应用程序,并添加了响应缓存。
在Index.cshtml中添加
@DateTime.Now.ToString()
当我在浏览器中运行应用程序时,如果重新加载页面,则输出时间将随每次刷新而变化,而不是如代码中所指定的那样缓存10000秒。
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
//other code
services.AddResponseCaching();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//other code
app.UseResponseCaching();
}
索引操作:
[ResponseCache(Duration = 10000, Location = ResponseCacheLocation.Any, VaryByQueryKeys = new string[] {"id"})]
public IActionResult Index()
{
// fetch data from database
}
当我检查响应头时:
缓存控制:public,max-age = 10000
但是,刷新时,每次输出都会变化。
任何建议都值得赞赏。
编辑:如果使用其他浏览器打开链接,则可以获取缓存的副本。但是,如果我按F5刷新,则会得到更新的时间。
第二个(刷新F5)请求标头:
GET / HTTP / 1.1
主持人:example.com
连接:保持活动状态
缓存控制:max-age = 0
不安全升级请求:1
用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 71.0.3578.98 Safari / 537.36
接受: text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng, / ; q = 0.8
引荐来源:https://example.com/
接受编码:gzip,deflate,br
接受语言:en-US,en; q = 0.9,zh-CN; q = 0.8,zh; q = 0.7,ja; q = 0.6
Cookie:blablabla