Django + WSGI:在子路径中使用app而不做任何更改

时间:2012-12-01 15:34:18

标签: django apache2 mod-wsgi

我想从子目录(例如http://www.stackoverflow.com/django_app/)提供Django应用程序。

我已经设置mod_wsgi来通过

服务页面
WSGIScriptAlias /django_app PATH_TO_DJANGO/wsgi.py

如何指定LOGIN_URL,STATIC_URL,MEDIA_URL等设置,以便Django尊重相对路径?

如果将STATIC_URL设置为"/static/",它会尝试引用http://www.stackoverflow.com/static/而不是http://www.stackoverflow.com/django_app/static/的资源。

但是如果我将它设置为"static"(没有前导斜杠),它将被解释为相对于任何也是错误的URL。例如,

的管理页面

http://www.stackoverflow.com/django_app/admin/

尝试从

加载文件

http://www.stackoverflow.com/django_app/admin/static/

我没有找到一种方法告诉Django使用http://www.stackoverflow.com/django_app/static而不在设置中明确硬编码前缀/django_app(IMHO违反了DRY原则,因为它已在mod_wsgi-config中指定)。  它还禁止在不修改项目的情况下在不同的URL下提供相同的项目,这似乎很奇怪。

1 个答案:

答案 0 :(得分:1)

没有办法让它自动化。这些少数变量中的URL和LOGOUT_URL不会自动加上SCRIPT_NAME的前缀,该脚本会通过脚本传入并标识挂载点。