2012-10-29 36 views
2

在UWSGI後面運行Django,我已經設置了夾層的實例,即差不多完美工作。唯一的問題是管理登錄頁面無法正常工作。如果您只是嘗試正常登錄,則瀏覽器將被重定向到http://admin/。 html表單操作屬性設置爲//admin/而不是/admin/,因此瀏覽器將「admin」視爲域名而不是當前域的根目錄。UWSGI在Django中添加雙斜槓到管理登錄表單

我試過通過Django和Mezzanine包代碼進行涉水,但我看不到任何應該導致多餘的斜槓的東西。我發現有一個網頁說,將settings.FORCE_SCRIPT_NAME更改爲"/"可能會導致這種情況,但我不會覆蓋默認值None,所以這不應該是原因。

在urls.py我有以下的(我認爲這是默認值):

 
urlpatterns = patterns("", 

    # Change the admin prefix here to use an alternate URL for the 
    # admin interface, which would be marginally more secure. 
    ("^admin/", include(admin.site.urls)), 

    .... 

回答

1

後,我已經想通了什麼問題很長一段時間!我曾跟隨過一些關於如何使用nginx設置uwsgi的說明,其中包含一條說明uwsgi_param SCRIPT_NAME /;的行。 SCRIPT_NAME的目的是爲UWSGI應用程序提供基本路徑,所以在這種情況下,它用於使斜線加倍。我發現金字塔發生同樣的問題。我懷疑這將發生在任何UWSGI應用程序中。

+0

一般來說,你想讓你的Django應用程序在本地調試,這會將你最初的問題的性質改變爲*部署* Django和Mezzanine,而不是關於*安裝*。 Mezzanine的部署文檔非常好,包含的Fabric腳本是一個很好的開始。 http://mezzanine.jupo.org/docs/deployment.html – ken

+0

@ken你的編輯真的很奇怪。雖然同意您的語法修復,但我強烈反對修改和/或添加整個句子。如果你想在答案中加入某些東西,你應該自己寫,而不是劫持別人的答案。 – bikeshedder

+0

@bikeshedder,恭敬地,我不同意。爲清晰起見編輯答案是SO的重要組成部分,我以前從來沒有見過這樣的抱怨。我刪除了一些口語並添加了SCRIPT_NAME的解釋,然後完成了OP在其他uWSGI應用程序中看到此行爲的想法。這很難「劫持」。此外,Tim Tisdall會爲此得到更多的業力,而不是我。 – ken