我的代理(nginx 公共端口 80)到 django(gunicorn wsgi localhost 端口 8000)剥离了应用程序“/app”的路径,因此 requests forhttp://server/app/hello
显示为 django as/hello
并且 requests forhttp://server/app/admin
显示为 django as /admin
。
问题是管理站点生成带有绝对 URL 的输出,例如<form action="/admin/"...
在登录屏幕中。因此,用户看到了管理员登录屏幕,但它发布的http://server/admin
内容不存在。(我有点希望它会使用相对 URL 并在任何位置工作。)
让管理页面像form action="/app/admin/"
它在页面输出中生成的所有 URL 一样普遍地预先添加“/app”的最简单方法是什么?我希望在 Django 中内置一些东西,比如一个简单的定义,而不必创建特殊的过滤器然后重写模板来使用它们,但我似乎找不到它。