繁体   English   中英

将example.com用户重定向到example.com/#/login

[英]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='',这真的时并不需要,并确保#/loginlogin_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应用程序在两个单独的端口中运行,例如:

  • Django在端口8000
  • 角度为端口1000

因此,如果您提供/#/login ,它将使用Django端口( 8000/#/login )进行重定向。

那么,为什么不提供完整的URL www.example.com/#/login

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM