【问题标题】:SquishIt vs. MVC 4.0 BundlerSquishIt 与 MVC 4.0 捆绑器
【发布时间】:2013-01-29 12:42:26
【问题描述】:

我有一个 ASP.NET MVC 应用程序,我目前使用 SquishIt 将我的所有 CSS 和 javascript 文件捆绑到一个从网络服务器下载的单个元素中,以便每次点击我的网站。我知道最近MVC introduced its own bundler。有没有人对他们两个做过一些比较?在某些情况下,一种比另一种更好吗?还是它们基本相同?使用 MVC 捆绑器,IIS 是否仍需要对站点目录的写入权限?

您的任何想法和想法都将不胜感激。

谢谢。

【问题讨论】:

  • 正是我的问题。谢谢。

标签: asp.net-mvc asp.net-mvc-4 bundler squishit


【解决方案1】:

我对此颇有偏见,但这是一个很好的问题 - 我没有尽可能多地考虑这个问题,但我已经开始了。

SquishIt 实际上并不需要对文件系统的写访问权限——它有一个Cached Bundle Mechanism,无需对站点目录进行写访问即可工作(它将捆绑包缓存在内存中并通过特殊的控制器/处理程序提供服务)。不确定 MS 产品是否具有此功能。

两者都在运行时工作并产生非常好的调试体验。

两者都有类似的使用预处理器(.less、coffeescript 等)的机制。 MS 的产品似乎更灵活一些,但使用起来可能更笨拙。 SquishIt's preprocessing behavior 是从 rails 中的资产管道建模的,并且不提供文件扩展链之外的任何方法来控制应用的顺序预处理器。

两者都允许包含目录和文件。 SquishIt 还支持将任意 javascript 或 CSS 片段(从数据库等检索)添加到捆绑包中,我在 MS 产品中没有看到这样的东西。

SquishIt 有一个允许writing your output file to a CDN 的扩展点 - 我在 MS 产品中还没有看到类似的东西。

希望其他人会填补这里的空白 - 我会尽量记住回来并在我了解更多信息时更新。

【讨论】:

  • 您是否尝试过使用MVC's bundling 将包含其他*.js 文件的目录中的所有*.min*.js 文件包含在一个Bundle 中?答案是:你不能!Bundle.Include("*.min.js"); 会向你抛出一个错误 :-) 这就是我所说的史诗般的失败。
【解决方案2】:

我没有像@AlexCuse 那样深入研究细节和可扩展性点等,但他的总体看法似乎是我的。

Squishit 似乎有优势。

对我来说(并且我认为我必须以某种方式错过明显的东西 - 但我没有时间/没有意愿编写我自己的自定义 IBundleOrderer 实现并且找不到我期望的解决方案文档/谷歌搜索)

MVC / MS 产品有一个 MASSIVE FAIL...

我不知道如何才能让它简单地遵守我声明的脚本和 css 文件的顺序!

出于显而易见的原因,这完全是一个糟糕的事情。 (即它完全搞砸了我的应用程序 - 在我的大型复杂应用程序中遍布 20 多个小 css / jscript 错误 - 那些令人沮丧的难以确定小的显示错误和奇怪的 js 怪癖)

Rick Anderson 说“添加自定义 IBundleOrderer 实现,但显式添加每个文件不太容易出错。”但我看不到如何做后者 - 我明确地使用 .Include( 为每个文件。主要是我的订单得到尊重,但令人讨厌的是不完全 - 显然一些默认规则发挥作用系统认为它比我更了解

诚然,必须在这里是一个简单的答案 - 但我找不到它,所以对我来说这是一个 MASSIVE MASSIVE FAIL,这意味着 我现在要麻烦恢复从 MS 实施回到 Squishit,它做得非常好,谢谢!

注意也有问题 1.它缩小js的方式......它引入了我不需要的错误。公平地说,我确实对 Squishit 有一些问题,但很容易解决。 2.缩小css的方式

Minification failed. Returning unminified contents.

我正在恢复使用 Squishit。

【讨论】:

  • 只是说,我不是这方面的专家,可能是 MS 产品中有很多很棒的功能,这只是我个人的经验,改变一直很痛苦,我将改回 Squishit - 因为我让它工作了。
  • 感谢您指出这一点。我实际上正在为 SquishIt 开发一个新的下载站点,并计划以此为借口来测试 MS 缩小的东西(哈哈!),我相信我最终会遇到这个。希望这能减少我把头撞在桌子上的时间。
  • 我希望其他人会为此提供一些方便的解决方案。由于嵌入式资源的一些复杂性,我们正在考虑从 SquishIt 迁移,但如果无法保留文件顺序,那么 MS 的产品绝对是不行的。
  • 是的,我浪费了很多时间从 SquishIt 切换到 MS 的东西,当然必须有一个解决方案来简单地让它遵守订单,但我在 docs/out 中看不到它在谷歌。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-14
  • 2013-01-19
  • 2015-08-07
相关资源
最近更新 更多