你好!
我正在寻找一种解决方案来合并、最小化和压缩CSS和JavaScript文件。它们似乎有两种形式:
- 以ASP.NET处理程序/模块的形式,实时处理文件(带有缓存结果)
- 以VS构建任务的形式(在构建时执行处理)
通常我都可以接受。
我已经看过很多解决方案了(我经常使用这篇文章中的ASP.NET处理程序:http://www.codeproject.com/KB/aspnet/httpcompression.aspx),但也许有些“必备”的东西出现了,我错过了。
提前感谢!
你好!
我正在寻找一种解决方案来合并、最小化和压缩CSS和JavaScript文件。它们似乎有两种形式:
通常我都可以接受。
我已经看过很多解决方案了(我经常使用这篇文章中的ASP.NET处理程序:http://www.codeproject.com/KB/aspnet/httpcompression.aspx),但也许有些“必备”的东西出现了,我错过了。
提前感谢!
我的建议是:使用构建任务并对输出进行HTTP缓存。
在构建任务方面,您需要查看您最喜欢的JavaScript缩小器(我最喜欢的是Google Closure Minifier),它具有命令行实用程序,您可以将其插入到项目文件、MSBUILD文件或NANT文件中。CSS也是同样的道理(我个人使用Yahoo! YUI Compressor)。如果您想使用LESS,您可以将其与YUI压缩器结合使用。要优化图像,我会使用optipng。这些工具的各自网站上都有使用说明。
现在,在您将这些文件全部优化之后,您需要使用MVC的处理程序或控制器操作来输出它们。为了设置过期时间,以便随后的请求将默认使用第一次请求下载的文件,您需要在代码中运行以下内容:
Response.ExpiresAbsolute = DateTime.Now.AddYears(1);
很可能你会需要一个缓存刷新策略,这样你才能更改内容文件。你可以通过向处理程序传递一个随机参数来实现这一点。有几种不同的方法可以做到这一点...只需在Google上搜索即可。
希望这可以帮到你。