Dank der folgenden Antwort habe ich eine before_request
-Funktion, die einen Benutzer zu /login
weiterleitet, wenn er noch nicht eingeloggt ist:
Kolben vor Anforderung - fügen Sie eine Ausnahme für eine bestimmte Route hinzu
Hier ist eine Kopie meiner before_request:
%Vor%Dateien in meinem statischen Verzeichnis werden jedoch nicht bedient, solange der Benutzer nicht angemeldet ist.
Auf meiner Seite /login
erstelle ich eine CSS-Datei aus dem Verzeichnis /static
, aber sie kann wegen dieser before_request
nicht geladen werden.
Ich habe diese Anwendung mit Apache mod_wsgi bereitgestellt und in meiner Apache-Konfigurationsdatei habe ich sogar das /static
-Verzeichnis als DocumentRoot der Site eingefügt.
Wie kann ich eine Ausnahme hinzufügen, um die /static
-Dateien meiner Anwendung zu versorgen, ohne dass sich der Benutzer anmeldet, aber immer noch before_request
für die von meiner flask-Anwendung definierten Routen verwenden?
Sie müssen ein Alias
oder %Co_de% Direktive zu Ihrer Apache Config Datei (oder .htaccess Datei, falls Sie keinen Zugriff auf die AliasMatch
files), um sicherzustellen, dass Apache Ihre statischen Dateien statt Flask bereitstellt. Stellen Sie sicher, dass Sie .conf
für erlauben Sie dem Apache-Webserver, auf Ihren statischen Pfad zuzugreifen . (Vergessen Sie auch nicht, Apache neu zu starten, wenn Sie die Directory
-Dateien bearbeiten, damit Ihre Änderungen übernommen werden.)
Als temporäres Stop-Gap-Maß (oder um die Entwicklung in der Entwicklung zu vereinfachen) können Sie auch überprüfen, ob die Zeichenfolge .conf
nicht in /static/
:
Ich denke, dass es eine Lösung gibt, die sauberer ist als request.path
zu überprüfen.
Ich stimme dem Apache-Ansatz zu, aber für eine schnelle Lösung habe ich die folgende Logik am Anfang der before_request () -Funktion:
%Vor%