VERTEILUNG DES LAUFENDEN PROBLEM:Serving Mediendateien von nginx
ich eine Website mit django geschaffen hatte, war das Servieren von Mediendateien im Admin richtig hochgeladen (wie ich glaubte, es war), weil sie erschienen die jeweilige Seite wurde einmal hochgeladen. Nach einigen neuen Standortkorrekturen wurden diese Dateien jedoch nicht mehr angezeigt, und die Bilder und Audiodateien wurden nicht angezeigt.
Um meine Website zu hosten, verwende ich Digital Ocean.
Wenn ich MEDIA_URL auf "/ media /" setze, wird es immer der STATIC-URL vorangestellt, und die URL würde wie "www.site.com/media/static/Images/etc" aussehen, und dann funktioniert nichts . richtig
In meinen Modellen, für die Imagefield() ich habe upload_to eingestellt als
photo = models.ImageField(upload_to="photos/")
mY urls.py:
urlpatterns = [
url(r'^' + ADMIN + '/', admin.site.urls),
url(r'^', include('a.urls')),
url(r'^', include('b.urls')),
url(r'^', include('c.urls')),
#for static files
] #+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Dies schafft ein Ordner in meinem Medienordner, der sich im Stammverzeichnis meiner Django-App befindet.
Ich lese in der Dokumentation, aber ich bin immer noch unklar, wie Dinge zu tun, wenn es darum geht, meine Mediendateien zu liefern, wenn es hochgeladen wird. Ich weiß, dass es der richtige Weg ist, sie mit einem Server wie nginx zu bedienen.
Ich würde gerne wissen, warum meine Mediendateien nicht ursprünglich angezeigt, und wenn ich nginx verwenden soll die Tatsache, dass die Dateien im Medienordner nicht gefunden werden, wird es beeinflussen, wie nginx die Dateien anzeigt und Warum wird die Medien-URL vorangestellt?
Ich werde die Nginx-Konfiguration tun, aber wenn Sie ein Beispiel zeigen möchten, tun Sie es bitte.
DANKE!
Mein jeweiliger URLS in Settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/home/path/to/project/static'
MEDIA_URL = '/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Das ist falsch. Verwechseln Sie statische Dateien nicht mit Mediendateien. Statische Dateien sind Teil Ihres Programms, wie Ihre CSS, Javascript und alle Bilder, die Teil Ihres Programms sind. Mediendateien sind Daten, die von Benutzern hochgeladen werden. Für statische Dateien siehe https: // djangodeployment.com/2016/11/21/how-django-statische-files-work-in-production /. Mediendateien sollten in ein anderes Verzeichnis verschoben werden (und für Sammeldateien gibt es keine "Sammelstatistik"). –
@AntonisChristofides konnte die Mediendateien durch Sammeln der Dateien im Medienordner sammeln. Kennst du Tutorials, die mir zeigen, wie ich das richtig mache? Ich bin nur wirklich verwirrt, und ich kann wirklich nicht aufhören, daran zu arbeiten, bis ich es herausgefunden habe. Die Django-Dokumentation zum Bereitstellen von statischen Dateien erwähnt nicht den Umgang mit Mediendateien. – thatguy
"war in der Lage, die Mediendateien durch Sammeln der Dateien zu sammeln" macht wenig Sinn. Sie müssen genau erklären, was Sie tun. Verwenden Sie besser ein Beispiel für eine einzelne Datei. Welche Datei ist es, zu welchem Modell passt es, in welches Verzeichnis hast du es geschrieben, wie hast du es dort hingestellt und das Problem hast du? –