0

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

我正在使用django-compressor它在压缩/缩小文件方面做得很好。我面临的问题是在部署期间。一段时间以来,我只是compress在生产中使用标签,我只是在所有页面上进行 curl 以确保它重新生成正确的 CSS/JS。这样一来,新用户就不必在压缩过程中首当其冲。

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

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

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

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

有没有人遇到过这个问题。如果代码与一些 django 标签/上下文变量混合,你如何进行压缩?

4

1 回答 1

0

找到了解决这个问题的方法。

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

 <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); 
于 2013-09-03T19:57:05.813 回答