【问题标题】:Django+WSGI: Use app at subpath without changesDjango + WSGI:在子路径中使用应用程序而不进行更改
【发布时间】: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 下服务同一个项目,这看起来很奇怪。

【问题讨论】:

    标签: django apache2 mod-wsgi


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2016-05-06
    • 2018-07-13
    • 1970-01-01
    • 2023-03-20
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多