对于网站中的JavaScript和CSS文件,我们经常会将其压缩以便节省服务器带宽、加快网站页面呈现速度(文件下载快了,网页当然显示更快)。对于一些大量使用JavaScript的网站,可能经常会修改JavaScript文件,如果每次发布需要手工压缩JavaScript文件也是一件很麻烦的事情,懒人们通常希望什么都自动化——这次利用YUI Compressor for .Net和Web Deployment Project来实现编译时自动压缩JS和CSS文件。当然,通常我们可能并不希望在Debug模式编译时压缩,我们只希望在Release模式编译时压缩。题外话:发现有些朋友似乎根本不Care什么是Debug编译模式什么是Release编译模式,反正他从来没有注意过编译模式。在发布时也会将整个网站以源代码的形式拷贝到生产服务器。他们通常认为这样更加容易查错——在生产服务器上开ASP.NET的Debug模式,禁用自定义错误页面等等。我非常不赞同这样的方式部署ASP.NET应用。我更趋向于使用Release模式编译网站,关闭ASP.NET Debug模式,打开自定义错误页面,当然,这种情况下应该有ASP.NET健康监测,当发生未捕捉异常时需要记录下来,严重的错误最好能够自动通知管理员。
1.首先我们去YUI Compressor for .Net主页下载文件:
http://yuicompressor.codeplex.com/releases/view/36891
2.如果没有安装Web Deployment Project,下载并安装它:
http://go.microsoft.com/fwlink/?LinkID=104956
3.下载YUI Compressor for .Net开发者提供的WDP示例
4.在自己的解决方案创建WDP工程
5.拷贝YUI Compressor for .Net的dll文件到一个合适的地方——方便引用
6.使用记事本等文本编辑器打开WDP工程文件也可以在解决方案管理器里面选择WDP工程,在右键菜单中选择“Open project file”命令在VS中打开解决方案文件。
7.按照示例的提示在工程文件中添加属性。
步骤看起来比较多,但是其实很简单,并且一旦设置以后都不用管理了——除非增加或者删除了文件,是一劳永逸的事情啊。
注意,示例文件会把所有指定的js或css文件压缩合并成一个文件。如果想每一个文件单独压缩而不最终合并到一起需要使用其他方式设置。不过设置方法也不复杂。有人通过修改YUI Compressor for .Net代码来实现,但其实只需要修改WDP文件,利用MSBUILD就可以完成。
如果CSS文章有中文,就需要注意在WDP中设置文件编码,一般使用UTF-8就可以了。
有时间再补充多文件单独压缩的问题。