当使用django-compressor进行离线压缩时,如何使用CDN添加对多个部署阶段(prod,qa,test)的支持?

时间:2014-09-15 12:20:46

标签: django django-compressor

我有一个非常简单的django应用程序设置,它在jenkins中打包,在那里用django-compressor运行离线压缩,运行集成测试,然后部署到QA服务器。 稍后我会找到一个使用相同包在我们的prod服务器上部署的工作。

只要资源路径在所有三个阶段都相同,这一切都很好,但我现在想为静态资源添加一个CDN,它只是代理prod服务器上的请求,这意味着我需要另一个URL前缀(MEDIA_URL)用于生产。目前,当我简单地更改我的包装以将MEDIA_URL指向CDN时,我的集成测试失败并且QA服务器被破坏,因为CDN代理生产服务器..所以我想继续使用相对非前缀路径进行集成并自定义带有远程URL的压缩媒体文件的URL前缀。

有没有理智的方法呢?对于我的集成测试,我可以想象我只是创建一个/ etc / hosts条目来将CDN主机名指向测试服务器,但这似乎是一个丑陋的解决方法。

1 个答案:

答案 0 :(得分:0)

您应该为每个环境设置一个单独的CDN实例。我使用Amazon S3执行此操作,可以轻松地为每个环境创建新的存储桶。