2012-06-23 33 views
1

最近我尝试过Django压缩器。这太棒了,我非常喜欢它,但是我在离线压缩(COMPRESS_OFFLINE = True)和模板标签方面遇到了一些麻烦。Django压缩器和Django中的模板标签

我有{{} django_vars}和{%django_tags%}我的JS代码里面,我想谷歌Clousure编译器不知道辨别出来(我用什么用Django的压缩过滤器)。事实上,我认为Django模板结构像{%if something%}被删除。

我该怎么做才能让所有此模板瓦尔/标签在我的代码JS压缩后?

感谢队友。

编辑: 最后,我发现了所有使用COMPRESS_OFFLINE的问题,它们都是由于错误而发生的。他们不是关于JS代码中的Django语法。当你试图在文件.html中压缩JS代码时,总是出现这个错误,而不是外部的JS。它没有解析器和所有编译器/压缩器。

现在,虽然我更喜欢Django的压缩机比Django的管道,我用这最后一个。此时,压缩报告没有问题。

感谢所有谁试图帮助我。

回答

0

你试过吗? Django Compressor的JS编译器进入工作AFTER模板节点被渲染,IMO。因此,{{ django_vars }}{% django_tags %}在被压缩之前已经被模板中的输出所替代。

如果{{ django_vars }}{% django_tags %}是按次/模板改变。它不能压缩到一块代码。你最好将这些部分从主JS代码块移动到JS代码块并分别进行压缩。

+0

做脱机压缩一些测试,我可以看到谷歌Clousure编译压缩和混淆不Django的模板语法正确的代码很好,但万一有在JS代码中的任何Django的语法失败。我正在寻找一个关于Google Clousure的解决方案,它忽略了Django的语法,就像它将会是一个评论(在压缩内联模式下它会很棒),但是我还没有找到任何东西。我猜我必须调整我的JS代码以将它的所有Django语法分开。无论如何,非常感谢。 –

+0

@RubénJiménez等等,你的意思是说你想在压缩文件中加入'{%foo%}'吗? – okm

+0

不,当然。我以inline模式压缩所有内容({%compress js inline%},.html文件中的所有代码)。所以我希望Google Clousure忽略Django语法。这样,我可以将所有的Django vars /标签保留在我的JS代码中(如原始的未压缩JS代码)。总而言之,我需要一个过滤器告诉Google Clousure(或者像YUI这样的其他编译器)忽略所有的Django语法并对它进行管理,就像它会在代码中注释一样。 –