使用Django将资产传输到CDN的最佳方法是什么?

Car*_*son 5 python deployment django cdn

在部署时,最好的做法是压缩静态资产(js,css),然后将它们移动到CDN.有迹象表明,处理一些方面的一些应用程序的Django( django-compressor,django-pipeline每个浮现在脑海中),但他们每个人都有自己的问题.例如,

  • django-compressor 想要在请求/响应循环内生成内容,即使启用了独占脱机压缩也是如此.
  • django-pipeline不会在任何地方存储哈希,因此它会遍历将压缩文件写入的路径,正则表达式匹配文件名,对这些可能的匹配进行排序,并返回列表中的最后一项.尝试从CDN做到这一点!什么?!

我正在寻找的(看似合乎逻辑的)管道工作流程是这样的:

  1. 使用文件名内容的哈希值压缩资产
  2. 存储在缓存或模块或文件名的那些东西,可以很容易地引用当它的时间来渲染HTML.

我不应该在我的所有Web前端节点上都有静态文件 - 只有CDN.

现在,我觉得我最好的选择就是破解对缓存文件名哈希的支持django-pipeline,但我真的想要为此提供一个简单的解决方案.

Django的最佳选择是什么?有吗?

谢谢!

cyb*_*lia 6

django-pipeline1.1.12现在缓存哈希,所以你应该没问题,看看更改日志.

免责声明:我是其中一位作者django-pipeline.


Sam*_*ing 1

你运行的是 Django 1.3 吗?如果是这样,那么您可以编写自己的自定义文件存储后端,将内容上传到 CDN。幸运的是,如果您想使用 Amazon S3,那么它django-storages已经可以满足您的需求了!