我在Heroku上部署了一个应用程序,但问题是当我的应用程序发送电子邮件时,它不会在URL中附加我的服务器名称:
content = Content("text/html", verification_email.format(user["first_name"],
url_for("register.display_register_form",
token=token.decode("utf-8"), external=True)))
但我在电子邮件中收到的链接是:
http:///register_account/DnsJpXw_QIcPYeDHEg_fipB2kRiJBUj2RI6I9cI4Yl4w6K9ohbZRMVqBInuV0aOsBT4Zqt69X8MfhNfnys4s-DAQmgu1OPBwmSQnzAELvdcCyiZtkJGSY8_dQ799FOewtBDkvqR1D8XHmvVxgaVqbwSjdEBnvFsBBHMQCic%3D/verify?external=True
我的网址存在问题:
///
中,就像服务器名称为空白如何获得正确的网址https://my-server-name/register_account...
?
修改
我尝试在config.py文件中设置以下变量:
SERVER_NAME =“http://my-server-58140.herokuapp.com”
它在我的路径中生成了错误,我无法访问任何网址,例如,以下网址可以访问,但在定义我的SERVER_NAME
时它不再存在:
http://my-server-58140.herokuapp.com/home
修改
我的烧瓶应用程序已配置:
SERVER_NAME = os.environ.get('SERVER_NAME')
DEBUG = True
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
在我的localhost上将environnement变量设置为0.0.0.0:5000
,在我的生产服务器上设置为my-server-58140.herokuapp.com
答案 0 :(得分:3)
要生成正确的URL,需要设置这两个Flask配置值:
SERVER_NAME
到您网站的名称,PREFERRED_URL_SCHEME
至https
。请参阅documentation for url_for()
和how to configure a Flask application。
编辑:此外,url_for
中的参数应为_external
而不是external
。