मैं टेम्पलेट टैग का एक सेट लिखने की कोशिश कर रहा हूं जो आपको टेम्पलेट फ़ाइलों के भीतर से जेएस और सीएसएस फ़ाइलों को आसानी से निर्दिष्ट करने की अनुमति देता है। {% requires global.css %}
की लाइनों के साथ कुछ और बाद में अनुरोध में, {% get_required_css %}
।Django templatetag "प्रसंस्करण का आदेश"
मेरे पास यह अधिकतर काम कर रहा है, लेकिन कुछ मुद्दे हैं। हम 'समय' मुद्दों से शुरू करेंगे।
प्रत्येक टेम्पलेट टैग दो चरणों से बना है, कॉल/इनिट और प्रस्तुत करें। किसी भी रेंडर प्रक्रिया को बुलाए जाने से पहले प्रत्येक कॉल/इनिट होता है। यह गारंटी देने के लिए कि {% get_required_css %}
प्रस्तुत करने से पहले सभी फ़ाइलों को कतारबद्ध किया गया है, मुझे कॉल/इनिट प्रक्रियाओं में आवश्यक फ़ाइलों की अपनी सूची बनाने की आवश्यकता है।
तो, मुझे सभी फ़ाइलों को एक बंडल प्रति अनुरोध में एकत्र करने की आवश्यकता है। context
dict जाहिर है इसके लिए जगह है, लेकिन दुर्भाग्य से, कॉल/init में संदर्भ चर तक पहुंच नहीं है।
क्या यह समझ में आता है? कोई भी इस के आसपास एक रास्ता देखता है (एक हैक-वाई वैश्विक request
ऑब्जेक्ट का उपयोग किए बिना)?
स्थानीय स्कूल में इन्हें स्टोर करने की एक और संभावना है लेकिन उन्हें अभी भी अनुरोध से बंधे रहने की आवश्यकता होगी ... संभवतः {% start_requires %}
टैग का कुछ प्रकार? लेकिन मुझे कोई संकेत नहीं है कि यह काम कैसे करें।
संक्षिप्त रूप से 'मिडलवेयर' की क्षमताओं की जांच करने के बाद, मैं जेनरेट किए गए HTML को सम्मिलित करने के लिए इसका उपयोग करने पर विचार कर रहा हूं। इसके साथ समस्या यह है कि विभिन्न स्थिर संपीड़न ऐप्स को बिना किसी काम के लिए प्राप्त करना अधिक कठिन होता है। –
यदि कोई दिलचस्पी लेता है, तो मेरे पास जिथब पर एक ऐप है जो इस विशिष्ट समस्या का एक बिल्कुल अनूठा समाधान है - http://github.com/pappy74/django-requires_js_css। यह जैक के जवाब के समान ही है, लेकिन एक अच्छा, साफ ऐप के रूप में पैक किया गया है। –