A continuación se muestran los archivos de configuración relevantes, también en http://dpaste.com/97213/.Ejecute Django con el prefijo de la URL ("subdirectorio"): ¿la aplicación funciona, pero las URL están rotas?
La configuración de apache está funcionando actualmente, porque el acceso a 'example.com/' me muestra el archivo index.html que he colocado en la raíz del documento.
Me gustaría servir Django/aplicaciones con el prefijo '/ d', por lo que 'example.com/d/' cargaría la aplicación predeterminada, 'example.com/d/app3' cargaría otra, como configurado en urls.py.
Sirviendo Django, estoy usando el mod_wsgi sugerido, en Linux.
Actualmente, se puede acceder a la aplicación para compras 'example.com/d', pero cuando el decorador @login_required trata de enviarme a la página de inicio de sesión, me envían a 'example.com/accounts/login', en lugar del 'example.com/d/accounts/login' esperado.
Dado que la aplicación predeterminada se carga correctamente, no estoy seguro de qué estoy haciendo mal aquí, o si esto es un error en Django al generar las direcciones URL.
¿Alguna sugerencia?
EDIT: Como nota, si cambio de la línea de configuración de Apache: WSGIScriptAlias / d /home/blah/django_projects/Tickets/apache/django.wsgi a WSGIScriptAlias //home/bla/django_projects /Tickets/apache/django.wsgi La aplicación, los comentarios y el inicio de sesión funcionan bien. Incluso yendo a 'example.com/admin' carga al administrador, aunque he dejado el medio de administración roto, por lo que no hay hojas de estilo cargadas.
--- Follow Configs:
#
# /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>
No borre su propia pregunta (por la razón que ha mencionado). Creo que es posible que un administrador reemplace su publicación, pero probablemente ni siquiera hubiera sido mejor mantenerla. Pero acepte su propia solución después del período de espera obligatorio. –