所有生成的URL上的Django前缀

max*_*olk 9 django-admin

我的代理(nginx公共端口80)到django(gunicorn wsgi localhost端口8000)剥离了应用程序"/ app"的路径,因此请求http://server/app/hello显示为django as /hello和请求http://server/app/admin显示为django as /admin.

问题是管理站点使用绝对URL生成输出,例如<form action="/admin/"...在登录屏幕中.因此,用户可以看到管理员登录屏幕,但它会发布到http://server/admin不存在的状态.(我希望它会使用相对URL并在任何位置工作.)

让管理页面普遍预先添加"/ app"的最简单方法是什么,就像form action="/app/admin/"它在页面输出中生成的所有URL 一样?我希望Django内置的东西就像一个简单的定义,而不必创建特殊的过滤器然后重写模板来使用它们,但我似乎无法找到它.

Gra*_*ton 16

请参阅FORCE_SCRIPT_NAME的文档:

https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name

将其设置为'/ app'而不是默认值None.