使用Yahoo.Yui.Compressor实现自己的Css&JS压缩工具

网上压缩css和js工具很多,但在我们的系统中总有特殊的地方。也许你会觉得用第三方的压缩工具很麻烦。我就遇到了这样问题,我不想在本地压缩,只想更新到服务器上去压缩,服务器压缩也不用备份之类的操作。于是我就想着自己实现压缩工具。

 

初步需求如下:  

  • 使用Yahoo.Yui.Compressor 2.0版本
  • 只对网站目录下指定文件夹中css和js进行压缩
  • 使用到了JQuery插件,所以有很多都是压缩过的js。所以对文件名称中保存min的不进行压缩
  • 不需要备份文件
  • 如在第一次访问文件时候进行压缩或应用程序启动时候进行压缩? 

  

实现(应用程序启动压缩版本): 

  • 引用 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:         }

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

完整代码下载

 

转载于:https://www.cnblogs.com/xuchengzone/archive/2012/10/13/js-css-compressor.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着Web前端开发的不断发展,我们经常需要使用JS和CSS来实现网页的动态交互和样式美化。但是,这些文件的体积较为庞大,会影响网页的加载速度和用户的体验。因此,在进行Web前端开发时,将JS和CSS文件进行压缩是一项非常重要的工作。而JS和CSS批量压缩工具则是为了更加高效地完成这项工作而创建的。 JS和CSS批量压缩工具能够自动化执行压缩任务,减少人工操作的时间和难度。一些常见的JS和CSS批量压缩工具包括:UglifyJS、CSSMinifier、YUI Compressor等。这些工具大多具有以下几个特点: 1. 节省时间和精力:JS和CSS批量压缩工具支持批量处理,能够同时处理多个文件,在短时间内完成压缩任务,大大节省了开发者的时间和精力。此外,使用这些工具还能避免手动操作出现的错误,保证压缩的准确性。 2. 减小文件体积:通过删除空格、注释、多余的标点符号等方式,JS和CSS批量压缩工具能够将文件的体积减小到最小。这样不仅能够提高网页的加载速度,还能减少服务器端的带宽压力。 3. 支持多种压缩方式:JS和CSS批量压缩工具支持多种压缩算法,如GZip、Deflate等,能够根据不同的情况选择最合适的压缩方式。这样能够使压缩后的文件更加紧凑、快速,减少传输时间。 总之,JS和CSS批量压缩工具在Web前端开发中发挥着非常重要的作用,能够有效地减小文件体积,提高网页的性能和用户体验,对于开发人员而言是一个非常实用的工具

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值