首页 > 解决方案 > Heroku 在页面更改时默认为 127.0.0.01

问题描述

我在将 Flask 应用程序部署到 Heroku 时遇到了一些问题。经过几个教程后,我设法将我的 Flask 应用程序托管在 Heroku 上,但我无法访问任何其他页面。它到达https://todoapplication-464425.herokuapp.com/上的主页,但是当我尝试更改为 Login/Register/Logout 时,它只是默认回到 127.0.0.1:5000。有谁知道这个的解决方法?

档案

web: gunicorn App:app

要求.txt

Flask==1.0.2
Flask-SQLAlchemy==2.5.
gunicorn==20.1.0
Jinja2==2.11.3
MarkupSafe==1.1.1
SQLAlchemy==1.4.15
virtualenv==20.4.6
Werkzeug==1.0.1

文件夹设置

模板:

base.html
index.html
login.html
register.html
todolist.html

登录.html:

{% extends "base.html" %}
{% block title %} Login Page {% endblock %}

{% block content %}

    {% with messages = get_flashed_messages() %}
        {% if messages %}
            {% for msg in messages %}
                <p>{{msg}}</p>
            {% endfor %}
        {% endif %}
    {% endwith %}

<form action="{{ url_for('login')}}" method="post">
    <p>Email: </p>
    <p><input type="email" name="email" /></p>

    <p>Password: </p>
    <p><input type="password" name="password" /></p>

    <p><input type="submit" value ="submit" /></p>
</form>
{% endblock %}

Base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" 
    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css')}}">
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body>
    <nav class="navbar navbar-dark bg-dark">
        <a class="navbar-brand" href="#">ToDo App</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
          <div class="navbar-nav">
            <a class="nav-item nav-link active" href="http://127.0.0.1:5000/">Home <span class="sr-only">(current)</span></a>
            <a class="nav-item nav-link" href="http://127.0.0.1:5000/login">Login</a>
            <a class="nav-item nav-link" href="http://127.0.0.1:5000/register">Register</a>
            <a class="nav-item nav-link" href="http://127.0.0.1:5000/logout">Logout</a>
          </div>
        </div>
      </nav>
    {% block content %}
    
    
    
    
    {% endblock %}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" 
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" 
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" 
crossorigin="anonymous"></script>
</body>
</html>

<!--All scripts for the NavBar have been added from https://getbootstrap.com/docs/4.3/getting-started/introduction/.
    Navbar and CSS code taken from https://getbootstrap.com/docs/4.3/components/navbar/ and then edited/customised. -->

标签: pythonflaskherokusqlalchemy

解决方案


好吧,我的错误:base.html 仍在使用硬编码地址,例如:

<a class="nav-item nav-link" href="http://127.0.0.1:5000/login">Login</a>

愚蠢的疏忽!谢谢大家


推荐阅读