Laufen Django mit URL-prefix ("Unterverzeichnis") - App funktioniert, aber URLs kaputt?
Unten sind die relevanten Konfigurations-Dateien, auch bei http://dpaste.com/97213/ .
Der apache-config ist aktuell arbeiten, da der Zugriff auf 'example.com/' zeigt mir die index.html Datei habe ich gelegt auf die Dokument-root.
Ich würde gerne dienen, Django/apps auf dem Präfix '/d', also 'example.com/d/" würde das laden der Standard-app 'example.com/d/app3" würde der laden einer anderen Konfiguration in urls.py.
Portion Django, ich bin mit den vorgeschlagenen mod_wsgi, auf Linux.
Derzeit kann ich den Zugriff auf die Ticket-app auf 'example.com/d", aber wenn die @login_required Dekorator versucht, senden Sie mir die login-Seite, die ich zugeschickt bekommen 'example.com/accounts/login' statt der zu erwartenden 'example.com/d/accounts/login'.
Da die Standard-app lädt richtig, ich bin mir nicht sicher, was ich bin falsch hier, oder ist dies ein bug in Django, die beim generieren der urls.
Irgendwelche Vorschläge?
EDIT:
Als Hinweis, wenn ich die apache config Zeile:
WSGIScriptAlias /d /home/bla/django_projects/Tickets/apache/django.wsgi
zu
WSGIScriptAlias //home/bla/django_projects/Tickets/apache/django.wsgi
Die Anwendung, Kommentierung und Protokollierung in alle funktionieren. Auch zu "example.com/admin' lädt der admin, obwohl ich Links die admin-Medien gebrochen, so dass keine stylesheets geladen werden.
--- Configs Folgen:
#
# /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 localhost@example.com
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>
InformationsquelleAutor anonymous coward | 2009-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine mögliche Duplikate von Django Apache Redirect Problem, als Antwort, dass dieses problem gelöst.
Nur ich schließlich stolperte über diese Antwort durch das öffnen fast alle 'Fragen' hier, nur aus Verzweiflung. Aus meiner Sicht, ich denke, meine Frage hat einige wertvolle "Suche freundliche" Worte.
EDIT: Die Antwort: (via alex vasi)
Dinge zu versuchen:
Sieht aus wie Ihre Website ist mit login_required Dekorateur. In diesem Fall können Sie hinzufügen settings.py:
LOGIN_URL = '/[prefix]/accounts/login/'
InformationsquelleAutor anonymous coward
In Ihrem urls.py benennen Sie urlpatterns zu base_urlpatterns; dann fügen Sie die followinig definition am Ende der gleichen Datei:
InformationsquelleAutor Ahmed Elhamidi