I'm having some trouble deploying my Flask App to Heroku. After a few tutorials I managed to get my Flask App hosted on Heroku, but I can't access any other pages. It reaches the homepage on https://todoapplication-464425.herokuapp.com/, but when I try and change to the Login/Register/Logout then it just defaults back to 127.0.0.1:5000. Does anyone know a workaround for this?
Procfile
web: gunicorn App:app
Requirements.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
templates:
base.html
index.html
login.html
register.html
todolist.html
login.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. -->
Alright, error on my part: the base.html was still using hardcoded addresses, such as:
<a class="nav-item nav-link" href="http://127.0.0.1:5000/login">Login</a>
Silly oversight! Thank you everyone