2017-03-14 71 views
1

我寫在燒瓶內的Web應用程序絕對URL,然後我決定使用Apache進行部署:固定在瓶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()](http://flask.pocoo.org/docs/0.12/api/#flask.url_for)。這些網址沒有登陸燒瓶應用程序,所以重定向將在Apache上,在這種情況下,只需從根目錄運行它:'WSGIScriptAlias// var/www/...'。但如果你使用IDE(例如PyCharm),它們都支持項目全局查找/替換...可能是一個非常簡單的任務,使它們成爲相對鏈接。 – abigperson

回答

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'