【问题标题】:Complete .NET solution for asset minification and bundling?用于资产缩小和捆绑的完整 .NET 解决方案?
【发布时间】:2013-02-07 20:16:18
【问题描述】:

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

要求

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

很高兴拥有

  • 如果它不破坏智能感知(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)还是完全不同的东西?

欢迎任何想法或想法!

【问题讨论】:

  • 您能否具体解释一下内置捆绑和缩小功能无法满足您的需求的原因?
  • 我确信一切都可以用 .NET 4.5 中的新东西来完成,但据我了解,它没有开箱即用的 LESS 支持、缓存破坏功能、自定义顺序捆绑文件等。SquishIt 将这一切都放在简单的 NuGet 包中,随时可用,并且许多其他站点运行与我完全相同的代码。
  • 缓存破坏,捆绑文件的自定义顺序正是内置的东西所做的(即它几乎可以满足您的要求)。 LESS 支持需要大约 3 行代码才能实现。

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


【解决方案1】:

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

【讨论】:

  • 同意。 SquishIt 开箱即可满足所有这些要求。
  • SquishIt 看起来很完美,但我在哪里可以找到文档?我只在codethinked.com/…找到了一个快速的“入门”指南
  • 你可以使用github上的项目wiki,stackoverflow问题和google group
  • 这不是我所说的正确文档:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2014-05-22
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多