asp.net 核心 2 静态文件缓存破坏默认文档默认.html



我有一个单页 Web 应用程序,我使用版本控制来缓存应用程序所需的脚本和其他资源,即默认情况下.htm我像这样链接:

<script src="js/index.js?plv=1.1"></script>

这工作正常,但是我遇到的问题是默认.htm页面本身被浏览器缓存,因此它不会读取新的默认值.htm进而不会触发更新。

"主页"页面由应用程序提供。使用默认文件() 中间件。

我正在考虑解决此问题的一种快速而肮脏的方法,是在我发布的每次代码更新中,我在 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");
          }
      }
  });

使用

asp-append-version="true"

脚本标记的属性。

相关内容

  • 没有找到相关文章

最新更新