python - 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. -->
解决方案
好吧,我的错误:base.html 仍在使用硬编码地址,例如:
<a class="nav-item nav-link" href="http://127.0.0.1:5000/login">Login</a>
愚蠢的疏忽!谢谢大家
推荐阅读
- r - ifelse 在 r 中的 mutate 函数中
- php - 删除行数据表后后续行的排序顺序
- ubuntu-16.04 - Ubuntu 16.04 的深色主题
- oracle - 运行函数中的 oracle-db 中的数据未更新
- javascript - 检查字符长度并在它太长时将其剪掉的函数
- android - 反正有没有使用应用程序包名称获取 android 应用程序图标、应用程序名称和应用程序描述?
- ipad - 启用 SplitView 和 MultiTask iPad 混合应用程序。丢弃交互
- javascript - 如果 HTML 容器包含特定元素,如何拆分它?
- python - 尝试对功能进行计时
- keycloak - 想要在存在多个凭据的情况下发送 otp 的 Keycloak Rest API 请求格式