2012-03-04 20 views
7

मैं अपनी साइट के स्थिर सीएसएस और जावास्क्रिप्ट फ़ाइलों को संपीड़ित करने के लिए django-compressor का उपयोग कर रहा हूं। चूंकि मैं अमेज़ॅन एस 3 के माध्यम से अपनी साइट की स्थिर संपत्तियों की सेवा करता हूं, इसलिए मैं अपनी फ़ाइलों को S3 पर अपलोड करने के लिए django-storages का भी उपयोग कर रहा हूं।क्या django-compressor टेम्पलेट विरासत के साथ काम करता है?

यहां मेरा मुद्दा है: मैं एक साफ base.html टेम्पलेट बनाने की कोशिश कर रहा हूं कि मेरी सभी साइट के अन्य टेम्पलेट्स उत्तराधिकारी और विस्तार कर सकते हैं। यहाँ यह क्या वर्तमान की तरह लग रहा है:

{% load compress %} 

<html> 
<head> 
    <!-- test --> 
    {% compress css %} 
    <link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/styles.css" /> 
    {% endcompress %} 

    {% compress css %} 
    {% block css %}{% endblock %} 
    {% endcompress %} 

    {% compress js %} 
    {% block js %}{% endblock %} 
    {% endcompress %} 
</head> 
<body> 
    {% block body %}{% endblock %} 
</body> 
</html> 

आप देख सकते हैं, मैं प्रयास कर यहाँ करने के लिए मेरे टेम्पलेट कि css और js ब्लॉक ओवरराइड करने के लिए इस टेम्पलेट के वारिस के लिए अनुमति देते है क्या कर रहा हूँ, इसलिए वे परिभाषित कर सकते हैं उनके संपीड़ित होने के लिए अपने सीएसएस और जावास्क्रिप्ट। दुर्भाग्यवश, ऐसा नहीं होता है।

जब मैं python manage.py compress चलाता हूं (django-compressor मेरे टेम्पलेट का विश्लेषण करने और संकुचित जावास्क्रिप्ट और सीएसएस कोड उत्पन्न करने के लिए), यह वास्तव में मेरे शामिल सीएसएस और जावास्क्रिप्ट फ़ाइलों को नहीं मिला है।

{% block css %} 
{{ block.super }} 
<link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/index.css" /> 
{% endblock %} 

मैं अपनी साइट पर उस पृष्ठ पर जाने का प्रयास करते हैं, तो मैं कह रही है कि संकुचित फ़ाइल मौजूद नहीं है कोई त्रुटि मिलती है:

उदाहरण के लिए, यहाँ अपनी साइट की index.html टेम्पलेट है।

मुझे विश्वास है कि क्या हो रहा है यह है कि python manage.py compress कमांड मेरे टेम्पलेट का निरीक्षण नहीं कर रहा है जो base.html से प्राप्त होता है। और चूंकि यह उनका विश्लेषण नहीं कर रहा है, यह किसी भी संकुचित कोड उत्पन्न नहीं कर रहा है।

मैं वास्तव में यह काम करना चाहता हूं, क्योंकि अब तक एकमात्र कामकाज मैंने पाया है कि प्रत्येक टेम्पलेट फ़ाइल में मैन्युअल रूप से {% compress %}...{% endcompress %} टैग जोड़ना है। मैं सिर्फ इतना है कि क्योंकि यह हर जगह इतना कोड :(

किसी भी सलाह बहुत सराहना की जाएगी दोहराता करने के लिए नफरत है।

+0

ध्वनि मेरे लिए समस्या की तरह त्रुटि त्रुटि निर्दिष्ट करती है: क्या फ़ाइल स्थानीय फाइल सिस्टम पर मौजूद है? एस 3 के साथ याद रखें, आपको स्थानीय रूप से और दूरस्थ रूप से बचाने के लिए भंडारण सेट अप करना होगा। –

+0

मैं वर्तमान में ऐसा कर रहा हूं क्योंकि django-compressor docs कस्टम कैश्डएस 3BotoStorage क्लास के माध्यम से सुझाव देते हैं। यह हिस्सा ठीक काम करता है (उदाहरण: यदि मैं किसी {% ब्लॉक%} को संपीड़ित करने का प्रयास नहीं कर रहा हूं .. {% endblock%} स्निपेट)। साथ ही: जब मैं वास्तव में 'python manage.py compress' प्रबंधन कमांड चलाता हूं तो मुझे कोई त्रुटि नहीं मिलती - केवल तभी जब मैं वास्तव में' base.html' से प्राप्त पृष्ठ को देखने का प्रयास करता हूं और सीएसएस या जेएस ब्लॉक को ओवरराइड करता हूं। – rdegges

उत्तर

5

मैं आप ऑफ़लाइन संपीड़न का उपयोग कर रहे लगता है, जो मामले में टेम्पलेट विरासत के रूप में एक होगा काम नहीं करता है उम्मीद यह "समस्या" के लिए प्रासंगिक इन मुद्दों देखें:।

संबंधित मुद्दे