更好的部署压缩资产的方法 - Django Compressor

时间:2013-09-03 18:16:58

标签: python django django-compressor

所以我有一个棘手的问题,我无法找到更好的解决方案。

我正在使用django-compressor,它在压缩/缩小文件方面做得很好。我面临的问题是在部署期间。有一段时间,我一直在制作中使用compress标签,我只是在所有页面上做一个卷曲,以确保它重新生成正确的CSS / JS。这样,新用户就不必感受到压缩过程的冲击。

我知道它有一个管理命令,它可以预压缩文件,然后可以将其推送到CDN,并可能在登陆/登录页面的幕后预加载它们。

这是一个问题,在一些javascript代码中,我使用的是上下文变量和django标签[自定义和本机]。

var first = '{% some_tag some_context_var %}';
var name = '{{some_context_var}}';

这会导致错误,因为在压缩期间它会尝试执行显然没有值的标记。它确实附带COMPRESS_OFFLINE_CONTEXT,但它不是动态的。

之前是否有人遇到此问题。如果代码与某些django标签/上下文变量混合在一起,你如何进行压缩?

1 个答案:

答案 0 :(得分:0)

找到解决此问题的方法。

基本上将变量移动到压缩器外部的自己的脚本块中,然后在压缩代码中使用这些变量。 e.g。

 <script type="text/javascript">
    var some_var = '{% something ctx_var %}';
 </script>

 {% compress js %}
     //before it was do_something_function('{% something ctx_var %}') 
     do_something_function(some_var);