【问题标题】:Fix absolute urls in Flask apache application修复 Flask apache 应用程序中的绝对 URL
【发布时间】:2017-03-14 01:52:11
【问题描述】:

我在 Flask 中编写了一个 Web 应用程序,然后我决定使用 Apache 来部署它:

<VirtualHost *:80>
    WSGIScriptAlias /app /var/www/flask-app/flask-app.py
    <Directory /var/www/flask-app>
        Require all granted
    </Directory>
</VirtualHost>

但是现在,链接如:

<a href='/login'>Sign in</a>

转到/login 而不是/app/login。有什么办法可以在不更改所有 URL 的情况下解决此问题?

【问题讨论】:

  • 在烧瓶中使用url_for() 的好理由。这些 url 没有登陆到烧瓶应用程序中,因此重定向将在 apache 上,在这种情况下,只需从根目录运行它:WSGIScriptAlias / /var/www/...。但是如果您使用 IDE(例如 PyCharm),它们都会对项目全局查找/替换提供一些支持......可能是一个非常简单的任务来使它们成为相对链接。

标签: python apache flask


【解决方案1】:

正如PJ Santoro 所说,您应该使用url_for。这消除了路线的歧义。

<a href='{{ url_for('route_function_name') }}'>Sign in</a>

地点:

@routes.route('/login', methods=['GET'])
def route_function_name():
    return 'blah'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    相关资源
    最近更新 更多