0

我想从一个子目录(例如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 为同一个项目提供服务,这看起来很奇怪。

4

1 回答 1

1

没有办法让它是自动的。这几个变量中的 URL 和 LOGOUT_URL 不会自动以 SCRIPT_NAME 为前缀,该 SCRIPT_NAME 与脚本一起传递并标识挂载点。

于 2012-12-02T10:13:42.760 回答