ASP.NET Core:禁用浏览器缓存

时间:2018-01-20 19:04:04

标签: c# asp.net visual-studio caching asp.net-core

我是一名新手网络开发人员,ASP.NET Core是我第一个使用过的网络框架。我注意到当我点击F5时我的网站没有更新,我将其跟踪到启用的浏览器缓存。如果我打开Chrome DevTools>网络并选择“禁用浏览器缓存”,我的网站会正确更新。

但是,每次开始调试时,我都不想完成此过程。有没有办法在我的ASP.NET核心应用程序中以编程方式禁用缓存,例如通过Startup.cs文件,这将自动为我完成?

修改:我使用UseFileServer代替UseStaticFiles。 (我不确定它们是做什么的,但是UseFileServer正常用于调试而UseStaticFiles没有。)我尝试将FileServerOptions参数传递给UseFileServer,但是没有&# 39; t让你像StaticFilesOptions那样配置缓存过期。

如果它是相关的,我正在构建一个Web API项目。

1 个答案:

答案 0 :(得分:1)

使用StaticFileOptions时,您仍然可以使用UseFileServer

var fsOptions = new FileServerOptions();
fsOptions.StaticFileOptions.OnPrepareResponse = (context) =>
{
    // Disable caching of all static files.
    context.Context.Response.Headers["Cache-Control"] = "no-cache, no-store";
    context.Context.Response.Headers["Pragma"] = "no-cache";
    context.Context.Response.Headers["Expires"] = "-1";
}
app.UseFileServer(fsOptions);