• 静态文件自动加版本号


    你还在为浏览器缓存而困扰么,快来看吧

     1 /// <summary>
     2     /// Auto versioning of custom static files.
     3     /// </summary>
     4     public static class HtmlHelperExtension
     5     {
     6         public static MvcHtmlString IncludeVersionedJs(this HtmlHelper helper, string filename)
     7         {
     8             string version = GetVersion(helper, filename);
     9             return MvcHtmlString.Create("<script type='text/javascript' src='" + filename + version + "'></script>");
    10         }
    11 
    12         public static MvcHtmlString IncludeVersionedCss(this HtmlHelper helper, string filename)
    13         {
    14             string version = GetVersion(helper, filename);
    15             return MvcHtmlString.Create("<link rel='stylesheet' href='" + filename + version + "'/>");
    16         }
    17 
    18         static string GetVersion(this HtmlHelper helper, string filename)
    19         {
    20             var context = helper.ViewContext.RequestContext.HttpContext;
    21 
    22             if (context.Cache[filename] == null)
    23             {
    24                 var physicalPath = context.Server.MapPath(filename);
    25                 var version = "?v=" + new System.IO.FileInfo(physicalPath).LastWriteTime.ToString("yyyyMMddHHmmss");
    26                 context.Cache.Add(physicalPath, version, null, DateTime.UtcNow.AddSeconds(60), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
    27                 context.Cache[filename] = version;
    28                 return version;
    29             }
    30             else
    31             {
    32                 return context.Cache[filename] as string;
    33             }
    34         }
    35 
    36         public static string GetFileWithVersion(this HtmlHelper helper, string filename)
    37         {
    38             return filename + GetVersion(helper, filename);
    39         }
    40     }
  • 相关阅读:
    <!DOCTYPE html>的重要性!
    ibatis 常用标签
    string.match(RegExp) 与 RegExp.exec(string) 深入详解
    JavaScript RegExp.$1
    JavaScript RegExp.exec() 方法
    正则表达式常用符号说明
    正则表达式中/i,/g,/ig,/gi,/m的区别和含义
    JavaScript Math.floor() 方法
    JavaScript RegExp.test() 方法
    js日期格式化 扩展Date()
  • 原文地址:https://www.cnblogs.com/hwisecn/p/6104061.html
Copyright © 2020-2023  润新知