将多个JavaScript文件组合并压缩到Django项目中的单个文件中

时间:2011-12-15 19:49:41

标签: javascript django backbone.js ember.js

将JavaScript文件合并到Django项目中的单个文件中的最简单方法是什么?

解释

我希望这可以与Ember.js / Backbone一起使用,您通常在多个目录中有许多不同的JavaScript。目录将位于名为app /的一个文件夹中,例如:app / views / app / models / / app / routers /

要求

  • 与staticfiles应用程序一起工作
  • 在开发模式下仍然可以分开以便于调试(仅在调用collectstatic时编译?)
  • 使用Require.js(猜测不应该太难,但要把它放在这里以确定)

额外信用

解释组合Django和Ember / Backbone的最佳实践方法。

3 个答案:

答案 0 :(得分:4)

我是django压缩器的快乐用户,它确实结合,缩小,调试友好,您可以将它与静态文件一起使用,轻松插入自定义存储后端(例如S3)

https://github.com/jezdez/django_compressor

答案 1 :(得分:1)

您希望将多个文件合并为一个的原因是为了最大限度地减少设置和删除http请求的延迟,您做得越多越好。但是,许多较新的浏览器并行下载JavaScript文件(仍按顺序执行)。结果是,下载单个1Mb文件可能比三个350Kb文件慢。

您可以使用CDN。

答案 2 :(得分:0)

正如前面的回答中所提到的,django-compressor很不错,但是当使用专用的javascript加载器时,你经常会获得更好的加载时间。我的提示是查看Head.js例如(http://headjs.com/)(还有很多其他的)。在使用位于CDN上的javascript时,通常组合脚本在使用缓存时可能会产生高效率。

要记住的一件事是Iphone 3/4只会缓存15 / 25KB的javascript,所以如果你有大量的脚本并将它们组合起来就会遇到麻烦。 http://www.phpied.com/iphone-caching/