Ich habe eine HTML-Datei, die auf ein solches Objekt verweist
%Vor%Daher versucht der Browser, dies per aufzurufen, und flash kann dies nicht tun
%Vor%Es gibt viele solcher Referenzen über mehrere Dateien, daher ist es nicht möglich, die Referenzen zu ändern. Wie serviere ich diese statischen Dateien von FLASK
Ich habe alle diese statischen Dateien in den 'statischen' Ordner kopiert und dies versucht
%Vor%Wie auch immer, funktioniert das nicht? Gibt es einen anderen Weg dies zu tun? oder was mache ich falsch?
In der Produktion möchten Sie keine statischen Dateien mit dem flask-Server bereitstellen. Ich schlage vor, Sie verwenden einen richtigen Webserver, um das zu tun.
Wenn Sie für dev url_for
nicht verwenden möchten, können Sie versuchen, Ihre flask-App wie folgt zu initialisieren. Auf diese Weise weiß flask, wo sich Ihre statischen Dateien befinden.
Sehen Sie diesen Beitrag mit vielen Informationen Statische Dateien in Flask - robot.txt, sitemap.xml (mod_wsgi)
Wenn Sie sich die Dokumente für send_from_directory
ansehen, werden Sie sehen, dass es die Pfad zu dem Verzeichnis, in dem die Dateien gespeichert sind auf Datenträger . Sofern Sie Ihre Bilddateien nicht in einem Verzeichnis auf der Stammebene mit dem Namen static
gespeichert haben, sollten Sie den Dateipfad aktualisieren:
Wenn Sie dies für alles verwenden, was unter Last steht, sollten Sie besser sicherstellen, dass Ihr Webserver die Dateien bereitstellt, anstatt statische Dateien von Ihrer Anwendung zu liefern.
Verwenden Sie den integrierten Flask-Server nicht in der Produktion. Es ist nur für die Entwicklung! Und verwenden Sie Flask nicht, um statische Assets zu servieren. Es ist langsam! In der Produktion benutzen Sie einen Webserver vor Flask wie Apache2, Nginx oder Lighttpd. Diese Server können eine URL neu schreiben und statische Ressourcen bereitstellen.
So stellen Sie den Flask bereit: Ссылка
Ich denke, ein besserer Weg wäre:
%Vor%Anstatt die Dateien an zwei verschiedenen Orten zu senden, würde dies eine permanente Weiterleitung an die richtige URL vornehmen. Wie andere gesagt haben, ist es auch eine gute Idee, statische Dateien direkt mit nginx oder Apache zu versorgen.