在使用默认LOGIN_URL时,django是否会考虑SCRIPT_NAME

时间:2010-04-25 17:20:15

标签: django

我正在使用Django 1.0.2并试图弄清楚如何让@login_required正常工作。

当我使用内置服务器时,它会按预期重定向到默认的login_url或settings.py中定义的LOGIN_URL。

我不清楚如何部署到我的站点不在根目录的服务器上。在我的模板中,我使用了url模板标记,在视图中我可以访问request.META ['SCRIPT_NAME'],但由于某种原因,它似乎不适用于所使用的LOGIN_URL。

我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

如果脚本未托管在根目录下,则应使用一个名为FORCE_SCRIPT_NAME的设置来设置脚本的位置。您可以将其添加到登录/注销URL:

# This is needed because we're running the app in non-root directory of web server
FORCE_SCRIPT_NAME = '/myapp.cgi/'

LOGIN_URL = FORCE_SCRIPT_NAME + 'accounts/login/'
LOGOUT_URL = FORCE_SCRIPT_NAME + 'accounts/logout/'

参考:https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name