到了部署时,最好的做法是压缩静态资产(js,css),然后将它们移动到CDN。有一些Django应用程序可以处理某些方面(每个都会想到django-compressor
,django-pipeline
),但每个方面都有自己的问题。例如,
django-compressor
想要在请求/响应循环内生成内容,即使启用了独占脱机压缩也是如此。django-pipeline
不会在任何地方存储哈希值,因此它会遍历将压缩文件写入的路径,正则表达式匹配文件名,对那些可能的匹配进行排序,并返回最后一项列表。尝试从CDN做到这一点!什么?!我正在寻找的(看似合乎逻辑的)管道工作流程是:
我不应该在我的所有Web前端节点上都有静态文件 - 只有CDN。
现在,我觉得我最好的选择是破解对django-pipeline
缓存文件名哈希的支持,但我正在为此设计一个简单的解决方案。
Django的最佳选择是什么?有没有?
谢谢!
答案 0 :(得分:6)
django-pipeline
1.1.12现在正在缓存哈希值,所以你应该没问题,请参阅changelog。
免责声明:我是django-pipeline
的作者之一。
答案 1 :(得分:1)
你在运行Django 1.3吗?如果是这样,那么您可以编写自己的custom file storage backend,将内容上传到CDN。幸运的是,如果您想使用Amazon S3,那么django-storages
已经完全符合您的要求!