从相对路径服务Django应用程序

时间:2011-09-02 10:32:14

标签: django apache mod-wsgi relative-path

我正在开发一个在本地工作正常的Django应用程序。在生产中,应用程序将从相对路径提供,例如www.example.com/app/

我正在使用Apache和mod_wsgi,我已经配置了Apache来从相对URL提供应用程序:

WSGIScriptAlias /app /path/to/my/modwsgi.py
WSGIDaemonProcess app display-name=app_wsgi

不幸的是,我收到了错误404.但是调试信息非常神秘。如果我试图获得www.example.com/app/myurl/,Django说

Using the URLconf defined in apps.urls, Django tried these URL patterns, in this order:

    ^myurl/$
    ...

The current URL, myurl/, didn't match any of these.

似乎Django - 正确 - 推断所请求的路径是myurl/,而不是app/myurl/。但是,即使myurl/^myurl/$明显匹配,也找不到匹配。

我也尝试添加设置

FORCE_SCRIPT_NAME = '/app'

但没有任何变化 - 错误信息保持不变。

1 个答案:

答案 0 :(得分:1)

调试信息在于: - /在URL conf中尝试使用更宽松的正则表达式;我能够得到一个页面。从那里我可以打印request.path,结果证明是app/myurl/

为了使其有效,我改为放

FORCE_SCRIPT_NAME = ''
STATIC_URL = '/app/static/'
MEDIA_URL = '/app/media/'