heroku托管烧瓶app重定向到localhost

时间:2017-03-09 13:32:05

标签: python heroku flask localhost

我目前在Horoku上有一个烧瓶应用程序。当我访问它打开的页面时(它呈现一个html页面)。但是,每当我执行将用户重定向的操作(例如,提交表单)到应用程序的另一个目录时,它都会尝试重定向到本地主机并失败(如果我手动更改网址栏中的网址,则会有效)。我觉得这是一个非常简单的解决方案,但我所做的一切似乎都有所作为。这是一个例子...

@app.route('/')
def message_page():
    return(render_template('message_page.html')) 

@app.route('/message_receiver', methods = ['POST'])
def message_reciever():
    message  = request.form['msg']

    ***some other stuff***

    return(redirect(url_for('message_page')))

我尝试在app.route()部分和应用程序底部的app.run()中将主机指定为0.0.0.0,但这没有任何区别。注意:在localhost上运行时,这非常有效(我想它会掩盖问题)。我认为问题必须与url_for()函数有关,但我不知道如何解决它。

2 个答案:

答案 0 :(得分:2)

我没有使用过烧瓶的经验,但docs说您可以将_external=True传递给url_for方法。这将生成绝对URL,您可以使用SERVER_NAME环境变量控制实际主机。所以你应该在heroku上设置它:

heroku config:set SERVER_NAME=your_host

答案 1 :(得分:0)

好吧,根据help page,Heroku不会重定向。因此,任何重定向均由您的应用执行。