asp.net核心2静态文件缓存清除默认文件default.html?
问题描述:
我有一个单页的Web应用程序,我使用版本缓存胸围脚本和应用程序需要的其他资源,即在Default.htm中我链接是这样的:asp.net核心2静态文件缓存清除默认文件default.html?
<script src="js/index.js?plv=1.1"></script>
这工作得很好,但是我的问题碰到的是,default.htm页面本身被浏览器缓存,因此它不会读取新的default.htm,并且不会触发更新。
“home”页面由app.UseDefaultFiles()中间件提供服务。
我在想一个快速和肮脏的方式来解决这个问题,是我发布的每一个代码更新,我作为默认文档在index.htm和default.htm之间交替,并重命名另一个,所以它不通过UseDefaultFiles中间件获取。
然而,这是一个手动步骤,当然我会忘记在某些时候做到这一点。
我该如何处理这种情况?
答
的解决办法是在事后明显,主页是轻,没有理由缓存它在所有:
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = context =>
{
if (context.File.Name == "default.htm") {
context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
context.Context.Response.Headers.Add("Expires", "-1");
}
}
});