[英]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.