我在ASP.NET MVC上使用Scripts.Render() - 在更新用户仍然获得旧(捆绑)脚本文件后6小时,原因是什么?

Dir*_*oer 9 asp.net cache-control azure browser-cache typescript

我在TypeScript文件中更新了一些脚本,但用户似乎仍然可以获得捆绑脚本的旧版本.我怎么知道?因为我在日志中看到(远程)JavaScript错误,这些错误引用了新的最新版本中100%存在的类.它已经超过6个小时了,我可以验证它?={hash}已经改变了.

我感觉嫌疑人,无论是单向还是组合中的任何一种:

  • 静态内容(IIS)
  • Scripts.Render( "")
  • TypeScript编译
  • 天蓝

我感觉它存在于某种缓存中,或者它与静态内容服务有关.或者使用Script.Render().

原因是什么?它让我发疯,因为我知道该网站已被某些用户破坏,但我无法解决问题.

我在下面列出了标题.

头

这是捆绑包的代码.请注意,Core.js是由TypeScript生成的.

{
    var bundle = new Bundle("~/scripts/main-bundle");
    bundle.IncludeDirectory("~/scripts/fork", "*.js", searchSubdirectories : true );
    bundle.IncludeDirectory("~/scripts/app", "*.js", searchSubdirectories : true );
    bundle.Include("~/scripts/bundles/core.js");
    bundles.Add( bundle );
}
Run Code Online (Sandbox Code Playgroud)

更新

如果他们得到旧的HTML,因为它可能被缓存,所以hashbomb不会改变 - 他们是否应该仍然拥有一对JS和HTML?

ATe*_*rry 4

https://poules.com/us没有cache-control:max-age指定,因此您可能有一些用户在浏览器缓存的 html 上使用旧脚本。

有一个s-maxage设置,但这只是对未设置的public缓存的覆盖,并且此页面缓存设置为; 所以我认为它没有做任何事情。max-ageprivate

此外,如果您有权访问 Azure 门户,则可以检查 Azure 以查看部署的内容。