python - 使用 Django 将 Assets 通过管道传输到 CDN 的最佳方式是什么?

标签 python django deployment cdn

在部署时,一种最佳做法是压缩静态 Assets (js、css),并将它们移动到 CDN。有一些 Django 应用程序可以处理某些方面(django-compressordjango-pipeline 都想到了),但它们都有自己的问题。例如,

  • django-compressor 希望在请求/响应循环内生成内容,即使启用了完全离线压缩也是如此。
  • django-pipeline 不会在任何地方存储哈希值,因此它遍历将压缩文件写入的路径,正则表达式匹配文件名,对那些可能匹配项进行排序,并且返回列表中的最后一项。尝试从 CDN 执行此操作!什么?!

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

  1. 压缩 Assets ,使用文件名的内容哈希
  2. 将这些文件名存储在缓存或模块或某物中,以便在呈现 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/

相关文章:

django - 如何为 Django View 编写单元测试?

mysql - 如何合并 django 中的两个查询并选择与两个不相关的表不同的查询

xcode - 如何强制 Flutter 更新我的版本和内部版本号?

javascript - 尝试将 TensorFlow 保存的模型转换为 TensorFlow.js 模型时出错

python - pandas plot 在 ipython notebook 中不显示为内联

python - 是否有更有效的单行代码来根据条件初始化变量?

django - django 的注释字段存储在模型实例的哪里?

python - 用不等长度的列表填充 Pandas 列

java - 部署 WAR 还是 "fat"JAR?

ruby-on-rails - 不妨碍访问者的 Rails 应用维护