【发布时间】:2012-12-01 15:34:17
【问题描述】:
我想从一个子目录(例如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(恕我直言,这违反了 DRY 原则,因为它已经在 mod_wsgi-config 中指定)。
它还禁止在不修改项目的情况下在不同的 URL 下服务同一个项目,这看起来很奇怪。
【问题讨论】: