2017-06-29 1 views
3

Ich habe eine Anwendung auf Heroku bereitgestellt, aber das Problem ist, wenn meine Anwendung E-Mail sendet, fügt sie nicht den Namen meines Servers in der URL an:url_for mit _external = True auf heroku fügt den Servernamen nicht an die URL an

content = Content("text/html", verification_email.format(user["first_name"], 
                  url_for("register.display_register_form", 
                    token=token.decode("utf-8"), external=True))) 

Aber die Verbindung ich per E-Mail bin empfangen ist:

http:///register_account/DnsJpXw_QIcPYeDHEg_fipB2kRiJBUj2RI6I9cI4Yl4w6K9ohbZRMVqBInuV0aOsBT4Zqt69X8MfhNfnys4s-DAQmgu1OPBwmSQnzAELvdcCyiZtkJGSY8_dQ799FOewtBDkvqR1D8XHmvVxgaVqbwSjdEBnvFsBBHMQCic%3D/verify?external=True 

ich habe Probleme mit dieser URL:

  • Es i s nicht https und es sollte sein, da sie Gastgeber in Heroku sind
  • Der Servername in der URL nicht nur angezeigt /// wie wenn der Servername leer

ist Was soll ich tun, um die richtige URL haben https://my-server-name/register_account... ?

EDIT

Ich habe versucht, in meiner config.py Datei mit folgendem Variable auf:

SERVER_NAME = "http://my-server-58140.herokuapp.com"

Es erzeugt Fehler in meinem Weg und ich couldn‘ t Zugriff auf eine beliebige URL zum Beispiel könnte der folgende Zugriff vor sein, aber wenn meine SERVER_NAME es nicht mehr definiert:

EDIT

Mein Kolben-Anwendung konfiguriert ist:

SERVER_NAME = os.environ.get('SERVER_NAME') 
DEBUG = True 
BASE_DIR = os.path.abspath(os.path.dirname(__file__)) 

Wo die environnement Variable 0.0.0.0:5000 auf meinem localhost und festgelegt ist: my-server-58140.herokuapp.com auf meine Produktionsserver

Antwort

2

die korrekte URL zu generieren , müssen diese zwei Flask-Konfigurationswerte eingestellt werden:

  • SERVER_NAME auf den Namen Ihrer Website,
  • und PREFERRED_URL_SCHEME zu https.

Siehe documentation for url_for() und how to configure a Flask application.

EDIT: Zusätzlich sollte der Parameter in url_for_external und nicht external sein.

+0

Ich habe meine Antwort aktualisiert, müssen SERVER_NAME und PREFERRED_URL_SCHEME als Heroku-Umgebungsvariable definiert werden? – mel

+0

Könnten Sie versuchen, 'http: //' von 'SERVER_NAME' zu entfernen? Nein, Sie müssen diese nicht als Heroku-Umgebungsvariablen definieren. – Bovarysme

+0

Ok Ich füge einen SERVER_NAME hinzu, aber es funktioniert nicht meine E-Mail erhält immer noch einen Link wie: http: /// register_account/... ohne den Haupt-Domain-Namen – mel

Verwandte Themen