"http://machine1/*" 机器 1: ngnix + uwsgi + -6ren">
gpt4 book ai didi

python - Flask 代理解析 url_for

转载 作者:行者123 更新时间:2023-11-28 19:29:04 24 4
gpt4 key购买 nike

我有以下设置:

  • 主服务器:
    nginx 转发 "https://example.com/machine1/*"-> "http://machine1/*"
  • 机器 1:
    ngnix + uwsgi + flask 安装在 /,例如/foobar.

这意味着,https://example.com/machine1/foobar 将作为 /foobar 命中 Machine1。我在变量 NGINX_MOUNT_URL 中有挂载点 /machine1

问题是,url_for 没有解决这个问题。

我试过了

app.config["APPLICATION_ROOT"] = NGINX_MOUNT_URL   # = "/machine1"

但似乎只适用于 cookie url。

有一个简单的 View :

@app.route("/foobar")
def web_foobar():
from flask import url_for
return "The URL for this page is {}".format(url_for("web_foobar"))
# end def

因此,浏览 https://example.com/machine1/foobar(主服务器)将被代理到 http://machine1/foobar (Machine1) 显示 此页面的 URL 是/foobar。我需要它是 /machine1/foobar,以便在模板中链接工作。

我尝试了 https://stackoverflow.com/a/18967744/3423324 中提供的解决方案,但最终我必须浏览 https://example.com/machine1/machine1/foobar 才能获得页面 /foobar

如何让 flask.url_for 知道 APPLICATION_ROOT

最佳答案

看看How do I get the different parts of a Flask request's url?

pathscript_root 请求变量看起来符合您的需要。

关于python - Flask 代理解析 url_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41017496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com