Seite 1 von 1
uberspace Django static files über Webserver ausliefern
Verfasst: Donnerstag 29. Juli 2021, 17:39
von naheliegend
Hi,
hat jemand Erfahrung, wie man auf uberspace die static files vom apache ausliefern lassen kann, sodass der uwsgi das nicht machen braucht?
mit
kann ich angeben, wo in meinem webspace unter /home/<username>/html/ die static files liegen.
Muss ich jetzt der Django-App in den settings.py auch den Ort /home/<username>/html/static für den Ort der static files angeben?
Muss ich in der myDjangoProject.ini die Einstellungen für den uwsgi auch noch die static files mappen per
Code: Alles auswählen
base2 = /home/<username>/html
static-map = /static=%(base2)/static
Oder ist das jetzt alles doppelt gemoppelt?
https://lab.uberspace.de/guide_django.html
https://manual.uberspace.de/web-backends/#specific-path
LG
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Freitag 30. Juli 2021, 02:02
von LukeNukem
naheliegend hat geschrieben: ↑Donnerstag 29. Juli 2021, 17:39
Muss ich jetzt der Django-App in den settings.py auch den Ort /home/<username>/html/static für den Ort der static files angeben?
Kannst Du machen, aber... an sich ist so ein Webserver ein sehr effizientes Programm, um Daten von einem Persistierungsmedium auszugeben, und das klassische Medium ist... genau, eine Festplatte (die heute auch gern ein NAS, SAN, eine SSD oder NVMe sein darf)... Also leitet man die Location /static/ einfach auf das static-Verzeichnis um, damit die Daten nicht mehr von Python gelesen und an den Webserver geliefert, sondern direkt vom Webserver / Reverse Proxy ausgeliefert werden. Sprich: der Webserver liest das Zeug direkt vom Persistierungsmedium, idealerweise sogar aus dem Dateisystempuffer, und liefert es aus .
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Freitag 30. Juli 2021, 05:28
von sparrow
@LukeNukem: Ich verstehe nicht wie deine Antwort zur Frage passt.
@naheliegend: Zu der Konfiguration bei uberspace kann ich nichts sagen, aber in der settings.py musst du den Ort angeben an den der Befehl "collectstatic" die statischen Dateien kopiert, damit sie von einem separaten Programm ausgeliefert werden. Also ja, wenn deine statischen Dateien dort hin sollen, dann musst du dort den Pfad angeben und dann beim deployen "collectstatic" aufrufen.
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Freitag 30. Juli 2021, 10:59
von noisefloor
Hallo,
du musst in deinen Templates für die HTML-Daten für die statischen Dateien die URL setzen, die auf die URL zeigt, wo der Apache die statischen Dateien ausliefert. Danach schaut der Browser ja. Solange da eine Datei zurückkommt ist es dem Browser egal, ob die vom Apache oder Django oder ... ausgeliefert werden.
BTW: ich benutze Whitenoise zum Ausliefern von statischen Inhalten. Das intergriert sich in Django und man muss Apache / nginx / whatever nicht extra für statische Dateien konfgurieren. Wo das Limit von Whitnoise ist kann ich dir nicht sagen, meine Django-Seiten haben eher wenig Traffic. Aber angeblich ist Whitenoise auch relativ performant.
Gruß, noisefloor
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Freitag 30. Juli 2021, 16:00
von naheliegend
noisefloor hat geschrieben: ↑Freitag 30. Juli 2021, 10:59
Hallo,
du musst in deinen Templates für die HTML-Daten für die statischen Dateien die URL setzen, die auf die URL zeigt, wo der Apache die statischen Dateien ausliefert. Danach schaut der Browser ja. Solange da eine Datei zurückkommt ist es dem Browser egal, ob die vom Apache oder Django oder ... ausgeliefert werden.
Ich bin mir nicht sicher, ob ich deinen Satz verstanden habe, aber aktuell zeigen die URL im template (die sich aus den Bausteinen der settings.py zum Teil zusammensetzt), die Einstellungen für den uwsgi und für den Apache auf den selben /static Ordner. Ich weiß nur nicht, wer jetzt was ausliefert. Wenn ich den Apache jetzt abstellen würde, dann würde Django problemlos über den uwsgi die static files ausliefern.
noisefloor hat geschrieben: ↑Freitag 30. Juli 2021, 10:59
BTW: ich benutze Whitenoise zum Ausliefern von statischen Inhalten. Das intergriert sich in Django und man muss Apache / nginx / whatever nicht extra für statische Dateien konfgurieren. Wo das Limit von Whitnoise ist kann ich dir nicht sagen, meine Django-Seiten haben eher wenig Traffic. Aber angeblich ist Whitenoise auch relativ performant.
Schaue ich mir mal an. Danke.
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Freitag 30. Juli 2021, 22:19
von naheliegend
sparrow hat geschrieben: ↑Freitag 30. Juli 2021, 05:28
@naheliegend: Zu der Konfiguration bei uberspace kann ich nichts sagen, aber in der settings.py musst du den Ort angeben an den der Befehl "collectstatic" die statischen Dateien kopiert, damit sie von einem separaten Programm ausgeliefert werden. Also ja, wenn deine statischen Dateien dort hin sollen, dann musst du dort den Pfad angeben und dann beim deployen "collectstatic" aufrufen.
Danke, ich kannte
gar nicht, aber jetzt ergibt alles einen Sinn.

Re: uberspace Django static files über Webserver ausliefern
Verfasst: Montag 1. November 2021, 09:20
von SeBu
Du musst bei einem Uberspace nicht unbedingt ~/html nutzen.
Im Verzeichnis
kann man Unterordner mit den aufgeschalteten Domains erstellen. Dadurch kann man z.B.
als Ziel für Djangos collectstatic benutzen.
Mit
Code: Alles auswählen
$ uberspace web backend add beispiel-domain.de/static --apache
wird dann dieser Unterordner über Apache ausgeliefert.
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Mittwoch 20. April 2022, 20:26
von gomez72
Grundsatzfrage: was ist denn besser, wer die statics ausliefert, uwsgi oder Apache ? und warum ?
Re: uberspace Django static files über Webserver ausliefern
Verfasst: Donnerstag 21. April 2022, 00:58
von noisefloor
Hallo,
ich benutze das whitenoise Modul für Django für statische Inhalte. Grund: für das, was ich mache, vereinfacht es das Setup.
Was grundsätzlich besser ist kann man pauschal nicht sagen - das hängt u.a. auch davon ob, wie viele Request du pro Minute / Sekunde erhälst.
Gruß, noisefoloor