2010-05-24 17 views
8

मैंने एक Django साइट बनाई है जो रूट होने पर रूट पर रहती है। अभी यह आईपी पते पर पूरी तरह से काम कर रहा है। परीक्षण उद्देश्यों के लिए, क्लाइंट ने उस पर प्रॉक्सी यूआरएल की ओर इशारा किया है, लेकिन यूआरएल में इसमें/फ़ोल्डर/पथ है, इसलिए यूआरएल पैटर्न में से कोई भी मेल नहीं खाता है। मैंने रखा (/ फ़ोल्डर/पथ)? सभी यूआरएल पैटर्न में वे अब जवाब देते हैं, लेकिन सभी लिंक टूटा हुआ है क्योंकि मैं {% url%} टैग का उपयोग कर रहा हूं और यूआरएल पैटर्न वैकल्पिक पथ से मेल खाता है, लेकिन वे इसे उस टैग में शामिल नहीं करते हैं।Django: साइट-वाइड यूआरएल उपसर्ग

स्पष्ट रूप से परीक्षण पूरा होने तक मैं अपने सभी यूआरएल (ठीक है, सभी यूआरएल में शामिल) में केवल हार्ड-कोड/फ़ोल्डर/पथ कर सकता हूं, लेकिन क्या ऐसा करने का एक बेहतर तरीका है?

उत्तर

5

जब आप अपने अपाचे कॉन्फ़िगरेशन में WSGIScriptAlias को सही ढंग से सेट करके अपना आवेदन तैनात करते हैं, तो आप इसे प्रबंधित करते हैं (मान लें कि आप mod_wsgi का उपयोग कर रहे हैं, जो आपको करना चाहिए)। यह Django पर पास किया जाता है, जो तब स्वचालित रूप से सही मान के साथ सभी यूआरएल रिवर्स लुकअप को उपसर्ग करता है। आपको उपसर्गों के बारे में कोई मैन्युअल मकिंग करने की आवश्यकता नहीं है।

+2

दूसरे शब्दों में स्पष्ट करने के लिए, यह सुनिश्चित यूआरएल माउंट वापस अंत में WSGIScriptAlias ​​के साथ प्रयोग किया बिंदु यूआरएल कि यह किसी भी सामने अंत प्रॉक्सी के साथ में लगाया गया है मेल खाता है। जब तक वे वही होते हैं तब तक सभी उपसर्गों के संबंध में ठीक काम करना चाहिए। –

+1

@Daniel nginx + uwsgi परिनियोजन के बारे में क्या? 'लेकिन मैं उपसर्ग के लिए है कि आप क्या कर रहे हैं ऐसा लगता है: – panchicore

+0

@Daniel Roseman मैं स्थानीय स्तर पर XAMPP पर अपाचे में मेरे Django अनुप्रयोग है इस' WSGIScriptAlias ​​/ dj/"/xampp/htdocs/commons/mod.wsgi ग" की तैनाती कर रहा हूँ और मैं मेरे पहले से विकसित ऐप में यूआरएल/डीजे/के साथ यूआरएल। अगर मैं आपको सही ढंग से डीजे समझता हूं, तो स्वचालित रूप से प्रीफ़िक्स्ड किया जाएगा लेकिन यह मामला नहीं है। मुझे क्या गलत हो रहा है – flexxxit

1

इस purpouse मैं settings.py में URL_PREFIX का उपयोग करें और प्रत्येक में जोड़ लिए urls.py. में शामिल मैं इसे सभी छवियों/सीएसएस/जेएस लिंक के लिए लिंक के लिए, MEDIA_URL की शुरुआत में भी जोड़ता हूं। लेकिन मैं कुछ और मुश्किल समाधान के बारे में भी सुनना चाहूंगा?

0

यदि WSGIScriptAlias ​​काम नहीं करता है या आप इसे किसी कारण से सेट नहीं कर सकते हैं, तो याद रखें कि urlconf में शामिल() फ़ंक्शन सभी यूआरएल में उपसर्ग जोड़ता है। आप एक urlconf बना सकते हैं जिसमें आपके वर्तमान रूट urlconf शामिल हैं और इसे उपसर्ग पर आरोहित करें, और उसके बाद अपनी सेटिंग्स.py फ़ाइल को उस urlconf पर इंगित करें।

अस्वीकरण: मैंने यह कोशिश नहीं की है, लेकिन इसे काम करना चाहिए।

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