C#Web.Optimization Bundles和HTML5缓存清单

时间:2013-04-14 15:20:00

标签: asp.net cache-manifest system.web.optimization

我正在使用ASP.NET优化包来缩小和捆绑脚本和CSS文件。 我也在为我的ASP.NET应用程序开发一个使用HTML5缓存清单的移动UI。

当文件更改并且应用程序缓存被回收时,优化包会更新动态包URL的版本。

我希望能够在发生这种情况时更新我的​​清单版本,并包含优化包在清单中提供的动态URL。

如何读取当前版本(“v”参数)或其他任何可触发清单更新的内容?

/_assets/bundles/global?v=fmbQlO0mGjXyliVEBImQIr5yoMX0Tw0tlMK45jlwHZ81

示例代码:

    string version= "2.6";
    StringBuilder output = new StringBuilder();
    output.AppendLine("CACHE MANIFEST");
    output.AppendLine(string.Format("# v{0}", ??????));


    output.AppendLine("CACHE:");
    output.AppendLine(Scripts.Url("~/bundles/global").ToString());
    ...

1 个答案:

答案 0 :(得分:0)

如果更新,Application Manifest将自动触发更新。

对于静态资产,人们通常会更改评论中的版本号,以便更改文件并触发更新,即使CACHE,NETWORK和FALLBACK部分下的内容未更改。

当您使用System.Web.Optimization生成的URL时,如果捆绑包中的任何CSS或JavaScript文件的内容发生更改,则URL将更改。这意味着清单文件将自动与文件的先前版本不同,并将触发更新。

通过更新版本注释,无需强制文件不同。