3

将 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 不会创建正确的 URL,每个 URL 都不http://localhost/path_to_viewhttp://localhost/suburl/path_to_view. 如果我手动调用 suburl,则站点会正确显示。

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

关于使它起作用的线索的任何想法?

4

1 回答 1

1

线索是 settings.py 中的 FORCE_SCRIPT_NAME。

谢谢@格雷厄姆!

于 2013-06-24T08:21:05.507 回答