簡體   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