Asp.Net使用Yahoo.Yui.Compressor.dll壓縮Js|Css

來源:互聯網
上載者:User

網上壓縮css和js工具很多,但在我們的系統中總有特殊的地方。也許你會覺得用第三方的壓縮公用程式很麻煩。我就遇到了這樣問題,我不想在本地壓縮,只想更新到伺服器上去壓縮,伺服器壓縮也不用備份之類的操作。於是我就想著自己實現壓縮公用程式。

初步需求如下: 

  • 使用Yahoo.Yui.Compressor 2.0版本
  • 只對網站目錄下指定檔案夾中css和js進行壓縮
  • 使用到了JQuery外掛程式,所以有很多都是壓縮過的js。所以對檔案名稱中儲存min的不進行壓縮
  • 不需要備份檔案
  • 如在第一次訪問檔案時候進行壓縮或應用程式啟動時候進行壓縮? 

實現(應用程式啟動壓縮版本): 

  • 引用 Yahoo.Yui.Compressor.dll
  • 在Global.asax的Application_Start事件中加入處理代碼--code:
var files = System.IO.Directory.GetFiles(Server.MapPath("~/"), "*.*", SearchOption.AllDirectories);foreach (var file in files){    FileInfo finfo = new FileInfo(file);    //todo 你可以在檔案夾添加可以檔案記錄最後壓縮時間.再判斷檔案最後修改時間是在上一次壓縮時間之後的檔案.而且這裡還可以做非同步處理    string strContent = File.ReadAllText(file, Encoding.UTF8);    //名稱不是min    //todo 可能需要更完善的判斷    if (!file.Contains(".min."))    {        //取消檔案唯讀        File.SetAttributes(file, FileAttributes.Normal);        if (finfo.Extension.ToLower() == ".js")        {            //初始化JS壓縮類            var js = new JavaScriptCompressor();            js.CompressionType = CompressionType.Standard;//壓縮類型            js.Encoding = Encoding.UTF8;//編碼            js.IgnoreEval = false;//大小寫轉換            js.ThreadCulture = System.Globalization.CultureInfo.CurrentCulture;            //壓縮該js            strContent = js.Compress(strContent);            File.WriteAllText(file, strContent, Encoding.UTF8);        }        else if (finfo.Extension.ToLower()==".css")        {            //進行CSS壓縮            CssCompressor css = new CssCompressor();            strContent = css.Compress(strContent);            File.WriteAllText(file, strContent, Encoding.UTF8);        }    }}

 

完整代碼下載:http://files.cnblogs.com/xuchengzone/JS-CSS.Compressor.rar

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.