博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css、js压缩方法
阅读量:5036 次
发布时间:2019-06-12

本文共 2079 字,大约阅读时间需要 6 分钟。

使用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:         }

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

转载于:https://www.cnblogs.com/cbingqin/p/6273373.html

你可能感兴趣的文章
使用ViewModel来实现多个Model传送至视图
查看>>
Hopscotch POJ - 3050
查看>>
转发 FMDB多线程下"is currently in use" 或者 "database is locked" 问题
查看>>
<摘录>linux signal 列表
查看>>
maven项目相关依赖包导入
查看>>
11.字典和列表生成式
查看>>
犀牛中图片显示不了
查看>>
PAT (Basic Level) Practice 1001 害死人不偿命的(3n+1)猜想
查看>>
[UIDevice currentDevice].model
查看>>
NAVICAT 拒绝链接的问题
查看>>
【oracle】dmp导数据库
查看>>
微软 SqlHelper代码、功能、用法介绍:高效的组件
查看>>
丰子恺-《豁然开朗》
查看>>
JavaScript 对象
查看>>
原生js轮播图(面向对象)
查看>>
数据分析软件及spss简单操作
查看>>
自定义通信协议
查看>>
Unity3d--Space Shooter(官方教程)--学习感想(3)
查看>>
java中Collections.sort()方法实现集合排序
查看>>
nodejs笔记之事件循环
查看>>