乍一看,它们似乎是解决同一问题的几乎相同的解决方案,但是Jammit必须具有一些我没有意识到的关键差异或改进,否则Jammit的作者将只使用asset_packager。 :-)
谁能启发我?
当然。以下是一些主要区别:
Jammit无需使用简单的基于Ruby的CSS和JS缩小器,而是可以轻松地使用YUI压缩器或新的Google Closure编译器来压缩 Assets 。 Jammit不必单独指定每个文件,而是使用目录glob的有序列表来定义 Assets 包。这意味着您可以说这样的话:首先给我jQuery,然后给供应商所有,然后给我所有模型,然后给我所有UI ...
工作区:
供应商/jquery.js
供应商/*.js
型号/**/*.js
View /工作区/*.js
Jammit支持JavaScript模板,因此,无论您使用的是Prototype模板还是Mustache或Underscore模板,都可以在Rails View 旁边维护JavaScript View ,并将它们捆绑到一个浏览器中的单个包中。 Jammit支持图像嵌入,对于支持它们的浏览器使用Data-URI,对于IE7及以下版本使用MHTML。启用它可以使您将所有UI镶边和小图标直接嵌入CSS中,这样浏览器仅发出一个请求,而不是50个HTTP请求。 当您安装gem时,Jammit会包含jammit
命令行实用程序,您可以使用该实用程序来预构建所有 Assets ,并以最高压缩级别对它们进行预gzip。在--9的Gzip压缩下,我们的 Assets 大小比默认的gzip --2减少了30%(如果您即时进行gzip压缩,则默认情况下,该压缩值将接近默认值)。您应该同时使用这两种方法,但只能按需gzip压缩以获取动态请求。
希望对差异有所帮助-对于其他所有内容,http://documentcloud.github.com/jammit/