Quiero que las personas sean redirigidas a la ruta/perfil cuando se unan a la aplicación si no están registradas. El problema es que CSS y Javascript no se cargan en la página (mientras que sí lo hacen cuando elimino el siguiente código):
@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'))Más, el shell del servidor imprime:
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 -Aquí están mis otros códigos fuente:
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>perfil.html
{% extends 'base.html' %} {% block title %}Authentification{% endblock %} {% block content %} <h1>Hello World</h1> {%endblock%}Si alguien tiene alguna idea de como solucionarlo... Gracias
Después de algunas reflexiones más, descubrí el problema que es bastante simple de resolver: cuando el cliente solicitaba CSS, se redirigía a la ruta del perfil (haciendo un bucle infinito). Para solucionarlo, simplemente podemos modificar la condición de la siguiente manera:
@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'))