执行redirect('/pics_edit'),结果原本端口8080丢失了,造成页面无法正常访问,尝试使用各种办法都无法正常获取端口号,后面发现是由于nginx设置的问题,由于我的python环境部署在容器内,使用宿主的端口8080映射到80端口,然后nginx按照如下配置
server {
listen 80;
servername ; # 生产环境替换为域名
# 增加最大请求体大小限制为16M
client_max_body_size 16M;
# 静态文件目录(如需要)
location /static {
alias /app/static; # 静态文件存放路径
expires 30d; # 缓存策略
}
# 动态请求转发到 Gunicorn
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port; # 新增:明确传递端口
}
}
所以不论如何获取代码均获取到的是80端口,并且执行redirect('/pics_edit')时候页面url的端口号8080均无法保持。最后根据AI的提示,将宿主的8080不做转发直接映射到容器的8080端口上,并且修改了nginx:
listen 8080;
servername ; # 生产环境替换为域名
redirect带端口跳转成功,问题解决