Исправить абсолютные URL-адреса в приложении Apache Flask

1

Я написал веб-приложение в Flask, затем решил использовать 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-адреса?

  • 1
    хорошая причина использовать url_for () в колбе. эти URL не попадают в приложение фляги, поэтому перенаправление будет на apache, в этом случае просто запустите его из корня: WSGIScriptAlias / /var/www/... но если вы используете IDE (например, PyCharm), все они имеют некоторую поддержку глобального поиска / замены проекта ... возможно, довольно простая задача сделать их относительными ссылками.
Теги:
flask

1 ответ

2

Поскольку 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'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню