在部署时,一种最佳做法是压缩静态 Assets (js、css),并将它们移动到 CDN。有一些 Django 应用程序可以处理某些方面(django-compressor
、django-pipeline
都想到了),但它们都有自己的问题。例如,
django-compressor
希望在请求/响应循环内生成内容,即使启用了完全离线压缩也是如此。django-pipeline
不会在任何地方存储哈希值,因此它遍历将压缩文件写入的路径,正则表达式匹配文件名,对那些可能匹配项进行排序,并且返回列表中的最后一项。尝试从 CDN 执行此操作!什么?!
我正在寻找的(看似合乎逻辑的)管道工作流是这样的:
- 压缩 Assets ,使用文件名的内容哈希
- 将这些文件名存储在缓存或模块或某物中,以便在呈现 HTML 时轻松引用。
我不应该在我的所有 Web 前端节点上都有每个静态文件——只有 CDN。
现在,我觉得我最好的选择是将对缓存文件名哈希的支持破解到 django-pipeline
中,但我梦想着为此找到一个直接的解决方案。
为此,我在 Django 中的最佳选择是什么?有吗?
谢谢!
最佳答案
django-pipeline
1.1.12 现在正在缓存哈希,所以你应该没问题,请参阅 changelog .
免责声明:我是django-pipeline
的作者之一。
关于python - 使用 Django 将 Assets 通过管道传输到 CDN 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142989/