css、js压缩方法

使用Yahoo.Yui.Compressor实现网站css、js的压缩
使用说明:

  • 引用 Yahoo.Yui.Compressor.dll
  • 在Global.asax的Application_Start事件中加入处理代码--code:
   1:  
   2:         protected void Application_Start(object sender, EventArgs e)
   3:         {
   4:             var files = System.IO.Directory.GetFiles(Server.MapPath("~/"), "*.*", SearchOption.AllDirectories);
   5:             foreach (var file in files)
   6:             {
   7:                 FileInfo finfo = new FileInfo(file);
   8:                 //todo 你可以在文件夹添加可以文件记录最后压缩时间.再判断文件最后修改时间是在上一次压缩时间之后的文件.而且这里还可以做异步处理
   9:  
  10:                 string strContent = File.ReadAllText(file, Encoding.UTF8);
  11:                 //名称不是min
  12:                 //todo 可能需要更完善的判断
  13:                 if (!file.Contains(".min."))
  14:                 {
  15:                     //取消文件只读
  16:                     File.SetAttributes(file, FileAttributes.Normal);
  17:                     if (finfo.Extension.ToLower() == ".js")
  18:                     {
  19:                         //初始化JS压缩类
  20:                         var js = new JavaScriptCompressor();
  21:                         js.CompressionType = CompressionType.Standard;//压缩类型
  22:                         js.Encoding = Encoding.UTF8;//编码
  23:                         js.IgnoreEval = false;//大小写转换
  24:                         js.ThreadCulture = System.Globalization.CultureInfo.CurrentCulture;
  25:                         //压缩该js
  26:                         strContent = js.Compress(strContent);
  27:  
  28:                         File.WriteAllText(file, strContent, Encoding.UTF8);
  29:                     }
  30:                     else if (finfo.Extension.ToLower()==".css")
  31:                     {
  32:                         //进行CSS压缩
  33:                         CssCompressor css = new CssCompressor();
  34:                         strContent = css.Compress(strContent);
  35:                         File.WriteAllText(file, strContent, Encoding.UTF8);
  36:                     }
  37:                 }
  38:             }
  39:         }

以上代码只是测试代码,用于生产环境需要简单修改,很多可以改进的我已经在注释里面标记出来了

完整代码下载

posted @ 2017-01-11 13:55  cbinqin  阅读(2505)  评论(0编辑  收藏  举报