我正在使用uwsgi部署Django应用程序。
该应用部署在SERVER_URL:PORT
下。
使用代理服务器,也可以通过EXTERNAL_WEB_SITE/MY_APP_NAME
访问该应用。
使用管理页面时,在EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/
下,我可以看到正确的模型。但是,管理页面中指向模型的链接指向:EXTERNAL_WEB_SITE/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/
。也就是说 - MY_APP_NAME不会传递提供的链接。
我想这是因为在服务器本身,应用程序部署时没有应用程序名称,只是在特定端口下。
为了解决这个问题,我尝试在FORCE_SCRIPT_NAME=MY_APP_NAME
中定义settings.py
。这给了我很好的联系。但是 - 在尝试修改对象并保存时 - 在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 :(得分:0)
您需要通过代理服务器
的请求传递SCRIPT_NAME
env变量
或者你可以有两个实例运行一个FORCE_SCRIPT_NAME
设置,第二个没有
uwsgi有一个不错的选择,你可以在两个端口上部署你的应用程序,或者(甚至更好)根据标题或路径设置env变量
[uwsgi]
route = ^(/MY_APP_NAME)/ addvar:SCRIPT_NAME=$1