gng*_*zrd 10 python django nginx
我让Django用fastcgi_pass在Nginx后面跑.我在像"/ django/sample"这样的子路径上运行Django.
location /django/sample {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Run Code Online (Sandbox Code Playgroud)
我在django设置模块中使用FORCE_SCRIPT_NAME,它似乎解决了我在子路径上运行时遇到的所有问题.
在settings.py中:
FORCE_SCRIPT_NAME = "/django/sample/"
Run Code Online (Sandbox Code Playgroud)
我去这里用admin登录(并正确获取管理员用户界面):
http://server/django/sample/admin
Run Code Online (Sandbox Code Playgroud)
但是当我提交时,它会重定向到:
http://server/django/sample/django/sample/admin
Run Code Online (Sandbox Code Playgroud)
真正奇怪的是,如果我更改FORCE_SCRIPT_NAME =""登录有效.
但是,管理页面中的所有链接都是/ admin,而不是/ django/sample/admin /
我错过了什么?设置FORCE_SCRIPT_NAME ="/ django/sample /"似乎可以修复除管理员登录之外的所有内容.
有任何想法吗?
更新:
我也尝试在nginx conf中使用fastcgi_split_path_info(并在设置中取出FORCE_SCRIPT_NAME).再次修复除管理员登录重定向之外的所有路径问题.
像这样:
location /django/sample {
fastcgi_split_path_info ^(/django/sample)(.*)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Run Code Online (Sandbox Code Playgroud)
仅供参考,我放弃了.所有的文件说这应该很容易.但要处理这太痛苦了.我反而要求我们的Django应用程序使用子域并在服务器上设置vhost.这样Django可以在文档根"/"运行
| 归档时间: |
|
| 查看次数: |
1549 次 |
| 最近记录: |