asset_packager和Jammit的优点和缺点是什么?

时间:2009-12-09 10:34:49

标签: ruby-on-rails ruby

乍一看,他们似乎对同一个问题几乎是同样的解决方案,但Jammit必须有一些我没有注意到的关键差异或改进,或者其作者刚刚使用了asset_packager。 : - )

任何人都可以启发我吗?

1 个答案:

答案 0 :(得分:18)

不确定。以下是一些主要差异:

  • Jammit不再使用简单的基于Ruby的CSS和JS缩小器,而是可以轻松使用YUI Compressor或新的Google Closure Compiler来压缩您的资产。

  • Jammit不使用单独指定每个文件,而是使用目录globs的有序列表来定义资产包。这意味着您可以说:首先给我jQuery,然后是供应商的一切,然后是我的所有模型,然后是我的所有UI ......

    workspace:
      vendor/jquery.js
      vendor/*.js
      models/**/*.js
      view/workspace/*.js
  • Jammit支持JavaScript模板,因此无论您使用的是Prototype还是Mustache或Underscore模板,您都可以将您的JavaScript视图与Rails视图一起保存,并将它们捆绑到浏览器中提供的单个软件包中。

  • Jammit支持图像嵌入,对支持它们的浏览器使用Data-URI,对IE7及以下版本使用MHTML。通过启用它,您可以将所有UI chrome和小图标直接嵌入到CSS中,这样您的浏览器就可以只使用一个HTTP请求而不是50个。

  • 安装gem时,Jammit包含jammit命令行实用程序,您可以使用该实用程序预构建所有资产并在最高压缩级别对其进行预处理。在-9下进行Gzipping,使我们的资产大小减少了30%,而不是默认的gzip - 2(如果您正在快速进行gzip,则更接近于默认情况下)。您应该同时使用两者,但只能按需动态请求动态请求。

希望有助于区别 - 对于其他一切,有http://documentcloud.github.com/jammit/