2009-09-23 7 views
10

नीचे प्रासंगिक कॉन्फ़िगरेशन फ़ाइलें हैं, http://dpaste.com/97213/ पर भी।यूआरएल उपसर्ग ("उपनिर्देशिका") के साथ Django चलाएं - ऐप काम करता है, लेकिन यूआरएल टूटा?

अपाचे कॉन्फ़िगरेशन वर्तमान में काम कर रहा है, क्योंकि 'example.com/' तक पहुंचने से मुझे index.html फ़ाइल को दस्तावेज़ रूट पर रखा गया है।

मैं उपसर्ग '/ डी' पर Django/ऐप्स की सेवा करना चाहता हूं, इसलिए 'example.com/d/' डिफ़ॉल्ट ऐप लोड करेगा, 'example.com/d/app3' एक और लोड करेगा urls.py में कॉन्फ़िगर किया गया

Django की सेवा, मैं लिनक्स पर सुझाए गए mod_wsgi का उपयोग कर रहा हूं।

वर्तमान में, मैं 'example.com/d' पर टिकट ऐप तक पहुंच सकता हूं, लेकिन जब @login_required सजावट मुझे लॉगिन पेज पर भेजने की कोशिश करता है, तो मुझे 'example.com/accounts/login' पर भेजा जाता है, अपेक्षाकृत 'example.com/d/accounts/login' की बजाय।

डिफ़ॉल्ट ऐप सही तरीके से लोड होने के बाद से, मुझे यकीन नहीं है कि मैं गलत कर रहा हूं, या अगर यह यूआरएल उत्पन्न करते समय Django में एक बग है।

कोई सुझाव?

संपादित करें: एक नोट के रूप में, अगर मैं अपाचे config लाइन बदलने के लिए: WSGIScriptAlias ​​/ डी /home/blah/django_projects/Tickets/apache/django.wsgi को WSGIScriptAlias ​​//घर/blah/django_projects /Tickets/apache/django.wsgi सभी काम में आवेदन, टिप्पणी, और लॉगिंग ठीक है। यहां तक ​​कि 'example.com/admin' पर भी व्यवस्थापक लोड होता है, हालांकि मैंने व्यवस्थापक मीडिया को तोड़ दिया है, इसलिए कोई स्टाइलशीट लोड नहीं होती है।

--- कॉन्फिग का पालन करें:

# 
# /home/blah/django_projects/Ticket/urls.py 
# 
from django.conf.urls.defaults import * 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    (r'^', include('ticket.urls')), 
    (r'^admin/', include(admin.site.urls)), 
    (r'^comments/', include('django.contrib.comments.urls')), 
) 


# 
# /home/blah/django_projects/Ticket/apache/django.wsgi 
# 
import os, sys 

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 

sys.path.append('/home/blah/django_projects') 
sys.path.append('/home/blah/django_projects/Tickets') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'Tickets.settings' 

import django.core.handlers.wsgi 

application = django.core.handlers.wsgi.WSGIHandler() 


# 
# /etc/apache2/sites-available/django_tickets_wsgi (apache conf) 
# 
NameVirtualHost * 
<VirtualHost *> 

    Alias /media /home/blah/django_projects/Tickets/media 


    WSGIScriptAlias /d /home/blah/django_projects/Tickets/apache/django.wsgi 
    WSGIDaemonProcess exmaple_com user=blah group=blah processes=1 threads=10 
    WSGIProcessGroup example_com 

    ServerAdmin [email protected] 
    ServerName example.com 

    DocumentRoot /var/www/ 

    <Directory /var/www/> 
     Options -Indexes FollowSymLinks -MultiViews -Includes 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

    ErrorLog /var/log/apache2/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature Off 

</VirtualHost> 

उत्तर

7

यह Django Apache Redirect Problem के संभावित डुप्लिकेट, के रूप में है कि इस समस्या को हल जवाब है।

मैं केवल अंततः निराशा से बाहर, लगभग सभी संबंधित प्रश्नों को खोलकर उस जवाब पर ठोकर खाई। मेरे परिप्रेक्ष्य से, मुझे लगता है कि मेरे प्रश्न में कुछ मूल्यवान "खोज अनुकूल" शब्द हैं।

संपादित करें: जवाब: (alex vasi के माध्यम से)

इन्हें आज़माएं:

  1. बदलें वर्तमान डोमेन "yourdomain.tld/cflow" "साइटों" ढांचे में करने के लिए। Django व्यवस्थापक या डंपडाटा/loaddata manage.py आदेशों का उपयोग करना आसान है।
  2. ऐसा लगता है कि आपकी साइट login_required सजावट का उपयोग कर रही है। अपने URL में

+0

कृपया अपना स्वयं का प्रश्न न हटाएं (कारण आपने उल्लेख किया है)। मेरा मानना ​​है कि एक व्यवस्थापक के लिए आपकी पोस्ट को अनावृत करना संभव है, लेकिन शायद वे तब भी नहीं होंगे जब इसे चारों ओर रखना बेहतर होता। लेकिन अनिवार्य प्रतीक्षा अवधि के बाद कृपया अपना स्वयं का समाधान स्वीकार करें। –

2

LOGIN_URL = '/ [उपसर्ग]/लेखा/लॉगिन /': उस विशेष मामले में आप settings.py को जोड़ सकते हैं।py name_urlpatterns के लिए urlpatterns का नाम बदलें; फिर उसी फ़ाइल के अंत में फॉलोइनिग परिभाषा जोड़ें:

urlpatterns = patterns('', 
    '^', include(base_urlpatterns), # iff you wish to maintain the un-prefixed URL's too 
    '^your_prefix/', include(base_urlpatterns), 
) 
+7

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

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