2012-06-23 60 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語法並對它進行管理,就像它會在代碼中註釋一樣。 –