[英]Redirect example.com users to example.com/#/login
我正在开发一个使用Django和Angular的项目。 我没有网络开发人员的背景,因此请尝试解释您的答案,以便新手可以理解。
基本上,我想使登录页面成为默认页面而不是索引页面。
我目前在主Django项目urls.py中具有以下url处理程序:
url(r'^$', 'core.views.generic.index')
在名为core的应用程序中,我还有另一个urls.py,它将访问者发送到登录页面:
url(r'^/login$', private.MeLogin.as_view())
现在,我希望登录页面成为默认页面,而不是索引页面。 我怎样才能做到这一点?
我尝试在核心应用中添加以下views文件:
@login_required(redirect_field_name='', login_url='#/login')
def index(request):
return render_to_response('html/index.html', locals(), context_instance=RequestContext(request))
不幸的是我收到消息
此网页有重定向循环
我不知道如何解决这个问题。 基本上,我希望用户输入任何其他URL处理程序未处理的URL时,将其重定向到登录页面。 成功登录后,它们会自动重定向到仪表板页面。
编辑:
登录页面URL在核心urls.py
文件中处理,并且指向与索引不同的视图。
url(r'^/login$', private.MeLogin.as_view())
Web服务器(在本例中为Django)在#
之后看不到该片段。 您要从/
重定向到/
,从而创建一个重定向循环。
如果要重定向到Django登录URL,则需要login_url='/login'
。
顺便说一句,您应该从正则表达式r'^/login$
删除斜杠。
在@login_required(redirect_field_name='', login_url='#/login')
删除redirect_field_name='',
这真的时并不需要,并确保#/login
在login_url='#/login
是相同的URL。 py文件:喜欢
views.py
@login_required(redirect_field_name='', login_url='accounts/login/')
作为url.py
url(r'^accounts/login/', auth_views.login),
我假设您的Angular和Django应用程序在两个单独的端口中运行,例如:
8000
1000
因此,如果您提供/#/login
,它将使用Django端口( 8000/#/login
)进行重定向。
那么,为什么不提供完整的URL www.example.com/#/login
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.