我希望人们重新定向到路由/profil时,他们加入应用程序,如果他们没有注册。问题是CSS和Javascript不会加载到页面上(而当我删除以下代码时它们会加载):
@app.before_request
def before_request_func():
global ip_addr
ip_addr=request.environ.get('HTTP_X_FORWARDED_FOR', request.remote_addr)
if not(ip_addr in [i[2] for i in auth.getUsers()]) and request.path!='/profil':
return redirect(url_for('profil'))更多,服务器外壳打印:
127.0.0.1 - - [16/Mar/2022 20:28:23] "GET /profil HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2022 20:28:23] "GET /static/css/style.css HTTP/1.1" 302 -
127.0.0.1 - - [16/Mar/2022 20:28:23] "GET /static/javascript/script.js HTTP/1.1" 302 -
127.0.0.1 - - [16/Mar/2022 20:28:23] "GET /profil HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2022 20:28:23] "GET /profil HTTP/1.1" 200 -以下是我的其他源代码:
base.html
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" >
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='css/style.css') }}">
<link rel="icon" type="image/png" href="../static/images/logo.png" />
<title>{% block title %} {% endblock %}</title>
</head>
<body>
<canvas id="c" class="bg"></canvas>
<div id="profil">{{username}}</div>
<div id="content">
{% block content %} {% endblock %}
<a href="{{url_for('index')}}">
</div>
<div class="prospectus">
<div class="trademark">
<p class="trademark_style">DECRYPTO </p>
<p>©2022 Décrypto</p>
</div>
</div>
</a>
<script src="../static/javascript/script.js"> </script>
</body>
</html>profil.html
{% extends 'base.html' %}
{% block title %}Authentification{% endblock %}
{% block content %}
<h1>Hello World</h1>
{%endblock%}如果有人知道怎么解决它..。谢谢
发布于 2022-03-16 20:02:50
在进行了更多的自反之后,我发现了一个相当简单的哟解决方案:当客户端请求CSS时,它被重定向到配置文件路由(创建一个无限循环)。要修复它,我们可以简单地修改条件如下:
@app.before_request
def before_request_func():
global ip_addr
ip_addr=request.environ.get('HTTP_X_FORWARDED_FOR', request.remote_addr)
if not(ip_addr in [i[2] for i in auth.getUsers()]) and not(request.path in ['/profil','/static/CSS/style.css','/static/javascript/script.js']):
return redirect(url_for('profil'))https://stackoverflow.com/questions/71503262
复制相似问题