2013-10-20 132 views
1

我正在使用uwsgi部署Django應用程序。 該應用程序部署在SERVER_URL:PORT下。Django Admin Page斷開鏈接

使用代理服務器,應用程序也可以通過EXTERNAL_WEB_SITE/MY_APP_NAME訪問。

當使用管理頁面時,在:EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/,我可以看到正確的模型。但是,管理頁面中指向模型本身的鏈接指向:EXTERNAL_WEB_SITE/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/。即 - MY_APP_NAME不會通過所提供的鏈接。 我想這是因爲在服務器本身,應用程序部署時沒有應用程序名稱,只是在特定的端口下。

爲了解決這個問題,我嘗試在settings.py中定義FORCE_SCRIPT_NAME=MY_APP_NAME。這給了我很好的鏈接。但 - 當試圖修改一個對象並保存它時 - 在EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/ - 打到Save後我鏈接到EXTERNAL_WEB_SITE/MY_APP_NAME/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/ - 即 - 我獲得了MY_APP_NAME兩次。

有誰知道如何解決這個問題?

回答

0

你需要傳遞SCRIPT_NAME環境變量與代理服務器

或者你的要求,你可以有運行一個與FORCE_SCRIPT_NAME組兩個實例和第二不

uwsgi有一個不錯的選擇,你可以部署應用程序在兩個端口或(甚至更好)根據標題或路徑設置env變量

[uwsgi] 
route = ^(/MY_APP_NAME)/ addvar:SCRIPT_NAME=$1