使用 Visual Studio 2017,我创建了一个 asp.net core mvc 2.1 应用程序,并添加了响应缓存。
在 Index.cshtml 中,添加
@DateTime.Now.ToString()
当我在浏览器中运行应用程序时,如果我重新加载页面,输出时间会因每次刷新而异,而不是像代码中指定的那样缓存 10000 秒。
启动.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
}
当我检查响应头时:
缓存控制:公共,最大年龄=10000
但是,刷新时,输出每次都会变化。
任何建议表示赞赏。
编辑:如果我使用其他浏览器打开链接,我可以获得缓存副本。但是,如果我按 F5 刷新,我会得到一个更新的时间。
第二个(F5 刷新)请求头:
获取/HTTP/1.1
主机:example.com
连接:保持活动
缓存控制:max-age=0
升级不安全请求:1
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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
接受编码:gzip、deflate、br
接受语言:en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ja;q=0.6
饼干:blablabla