【问题标题】:Links inside JS code not prefixed with SCRIPT_NAME gunicornJS 代码中的链接没有以 SCRIPT_NAME gunicorn 为前缀
【发布时间】:2021-11-07 05:34:57
【问题描述】:

我在一台机器上托管一个烧瓶应用程序,在不同的端口上有不同的烧瓶应用程序。在它们前面有 nginx,它充当反向代理,以便根据 url 前缀将请求重定向到正确的端口(即应用程序)。 例如,所有对my_ip/app1/.. 的请求都被重定向到my_ip:port1 等等。 我的烧瓶应用程序通过 gunicorn 运行。 我已将SCRIPT_NAME 变量设置为app1,应用程序内的所有链接都是相对链接,它们不包含前缀app1,但这是自动添加的,它们工作正常。

问题是我通过 jquery 发出的 get 和 post ajax 请求不会发生这种情况。 最初这些请求中的 url 只是相对路径,例如 distribution?a=1..,然后我将它们替换为 {{ url_for('distribution') }}?a=1..,但没有任何改变。 我不明白为什么 url_for 将前缀添加到头部中的 css 和 js 文件的链接,而不是 js 代码中的这些链接。 我希望有比对前缀进行硬编码更好的方法,这会降低代码的可移植性

【问题讨论】:

    标签: nginx flask gunicorn


    【解决方案1】:

    最后的解决方案非常简单,只需使用url_for('main.get_distribution'),因此指定与路由关联的函数的名称。 这样,SCRIPT_NAME 前缀就正确地添加到了 url

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      相关资源
      最近更新 更多