完整的.NET解决方案,用于资产缩小和捆绑?

时间:2013-02-22 09:02:18

标签: .net css performance less bundling-and-minification

我们即将启动一个新的相当大的.NET 4.5项目,我们正在寻找一种解决方案来处理我们的静态资产,如Javascript和CSS文件。简而言之,我们希望它是一个解决方案,它可以在开发环境中轻松开发和调试,并在生产中实现最高性能和缓存控制。

要求

  • 必须支持LESS。
  • 必须能够控制捆绑的JS / CSS文件的顺序。
  • 必须能够在目录中捆绑文件的子集,而不是每个文件。
  • 文件哈希或上次修改的时间戳必须附加到CSS / JS文件名作为查询字符串(例如main.js?3B1F88A7)以在文件更新时中断客户端缓存。
  • 如果web.config编译调试设置为“on”,我想将这些文件包含为单独的脚本/链接标记,以简化开发和调试(开发模式)。
  • 如果web.config编译调试设置为“off”,我想缩小文件并将其捆绑到单个CSS / JS文件中,并设置积极的缓存标头(生产模式)。
  • 当用户请求页面而不是构建后的脚本时,就会进行捆绑和缩小。
  • 必须能够在同一网站中拥有多个JS / CSS捆绑包,以支持某些子页面上的多个网站/不同捆绑包。
  • 必须支持具有多个服务器的生产环境。

很高兴

  • 如果它不破坏intellisense(CSS类名等)会很好。

我确实检查了.NET 4.5中的新缩小和捆绑工具(http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx),我还检查了Cassette(http://getcassette.net/)但是AFAIK它们都没有满足我们的所有要求“框”。

那么,您认为最佳做法是什么?我们是否应该使用像Cassette这样的第三方解决方案,这是一个针对.NET 4.5功能的定制解决方案(我喜欢这个,因为它是“标准.NET”,但不支持.LESS)或者完全不同的东西?

欢迎任何想法或想法!

1 个答案:

答案 0 :(得分:3)

我认为SquishIt是您寻找的解决方案