【问题标题】:Combining and Compressing multiple JavaScript files into a single file in a Django project在 Django 项目中将多个 JavaScript 文件合并并压缩为单个文件
【发布时间】:2011-12-15 19:49:40
【问题描述】:

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

说明

我希望它与 Ember.js/Backbone 一起工作,您(通常)在多个目录中有许多不同的 JavaScript。目录将全部位于一个名为 app/ 的文件夹中,例如:app/views/ app/models/ /app/routers/

要求

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

额外功劳

解释结合 Django 和 Ember/Backbone 的最佳实践方式。

【问题讨论】:

    标签: javascript django backbone.js ember.js


    【解决方案1】:

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

    https://github.com/jezdez/django_compressor

    【讨论】:

      【解决方案2】:

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

      您可以从 CDN 使用。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2022-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-24
          • 2020-02-09
          • 2021-07-03
          • 1970-01-01
          相关资源
          最近更新 更多