Exécutez Django avec le préfixe d'URL ("sous-répertoire") - L'application fonctionne, mais les URL sont-elles brisées?
Ci-dessous sont les fichiers de configuration, également à http://dpaste.com/97213/ .
La config d'apache est actuellement en train de travailler, car l'accès aux 'example.com/" montre-moi le index.html fichier que j'ai placé à la racine du document.
J'aimerais servir de Django/apps à le préfixe '/d', si 'example.com/d/' serait de charger l'application par défaut, 'example.com/d/app3' serait de charger un autre, tel que configuré dans urls.py.
Servir de Django, je suis en utilisant le suggère mod_wsgi, sur Linux.
Actuellement, je peux accéder à la Billetterie de l'app "example.com/d" mais lorsque le @login_required décorateur essaie de m'envoyer à la page de connexion, j'ai envoyé à 'example.com/accounts/login" plutôt que de l'attendu "example.com/d/accounts/login'.
Puisque le défaut d'application se charge correctement, je ne suis pas sûr de ce que je suis faire de mal, ou si c'est un bug dans Django lors de la génération de l'url.
Des suggestions?
EDIT:
Une remarque, si je change la config d'apache ligne:
WSGIScriptAlias /d /home/titi/django_projects/Tickets/apache/django.wsgi
pour
WSGIScriptAlias //home/titi/django_projects/Tickets/apache/django.wsgi
L'application, de les commenter et à l'enregistrement de tous les beaux travaux. Même en vais "example.com/admin' les charges de l'administrateur, bien que j'ai quitté l'admin médias cassé, donc pas de feuilles de style sont chargés.
--- Configs Suivre:
#
# /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>
source d'informationauteur anonymous coward
Vous devez vous connecter pour publier un commentaire.
C'est un double possible de Django Apache Problème De Redirectioncomme que la réponse résolu ce problème.
Je ne finalement tombé sur cette réponse en ouvrant presque toutes les "questions connexes" ici, juste en désespoir de cause. De mon point de vue, je pense que ma question a quelques précieux "de recherche convivial" des mots.
EDIT: La réponse: (via alex vasi)
Choses à essayer:
Ressemble à votre site à l'aide de login_required décorateur. Dans ce cas particulier, vous pouvez ajouter à settings.py:
LOGIN_URL = '/[préfixe]/comptes/login/'
Dans votre urls.py renommer urlpatterns à base_urlpatterns; puis ajouter le followinig définition à la fin du même fichier: