我是一名新手网络开发人员,ASP.NET Core是我第一个使用过的网络框架。我注意到当我点击F5时我的网站没有更新,我将其跟踪到启用的浏览器缓存。如果我打开Chrome DevTools>网络并选择“禁用浏览器缓存”,我的网站会正确更新。
但是,每次开始调试时,我都不想完成此过程。有没有办法在我的ASP.NET核心应用程序中以编程方式禁用缓存,例如通过Startup.cs
文件,这将自动为我完成?
修改:我使用UseFileServer
代替UseStaticFiles
。 (我不确定它们是做什么的,但是UseFileServer
正常用于调试而UseStaticFiles
没有。)我尝试将FileServerOptions
参数传递给UseFileServer
,但是没有&# 39; t让你像StaticFilesOptions
那样配置缓存过期。
如果它是相关的,我正在构建一个Web API项目。
答案 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);