django-在子网址中的应用程序

时间:2013-06-13 10:00:02

标签: django apache mod-wsgi

将django-application部署到apache-Server时出现问题。该网站应该可以通过http://localhost/suburl/访问。 我使用虚拟环境。

(缩短的)虚拟主机看起来像这样:

<VirtualHost *:80>
    [.. admin, documentroot, logfiles..]
    [.. static files alias ..]

    # WSGI-definitions:
    WSGIDaemonProcess spo python-path=/home/ai/project/source:/home/ai/project/virtualenv/lib/python2.6/site-packages
    WSGIProcessGroup spo
    WSGIScriptAlias /suburl /home/ai/project/source/django.wsgi
</VirtualHost>

(标准)wsgi文件看起来像这样:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

结果是:

Django没有创建正确的网址,每个网址都是http://localhost/path_to_view而不是http://localhost/suburl/path_to_view。如果我手动呼叫郊区,则会正确显示网站。

我找到了一些来源(例如http://www.normanmurrin.com/blog/2013/05/07/portable-django-apps/)告诉我mod_wsgi / django应该支持这个开箱即用。嗯,确实如此。除了reverse()和url-Tag。

关于使其有效的线索的任何想法?

1 个答案:

答案 0 :(得分:1)

线索是settings.py中的FORCE_SCRIPT_NAME。

谢谢@Graham!