Setelah pengguna mengunggah gambar, dia selalu menampilkan kesalahan 404. Saya pikir ini adalah kesalahan konfigurasi Nginx tetapi saya tidak yakin dan setelah berjam-jam mencari dan mencoba, saya masih tidak mengerti masalahnya.
Inilah settings.py saya:
DEBUG = False
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Selanjutnya, urls.py saya :
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Dan file konfigurasi Nginx saya:
location ^/static/ {
autoindex on;
alias /home/user/mywebsite/site/static;
}
location ^/media/ {
alias /home/user/mywebsite/site/media;
}
Berikut URL gambar yang dihasilkan: https://www.mywebsite.com/media/CACHE/images/img/venus/758c9f7d70d0c64b5631cc865986de48.jpg (404)
Saya menggunakan Django Imagekit untuk menangani gambar yang diunggah. Saya selalu menganggap URL ini aneh...mungkin ImageKit memerlukan konfigurasi tambahan lagi?
Direktori statis dan media saya ada di /mainappdjango/static, bukan di direktori root. Jika saya tidak melakukan itu, statis saya tidak dimuat. Gambar diunggah dengan baik di server (saya dapat mengaksesnya dengan FTP atau SSH).
Apakah Anda tahu masalah yang menyebabkan kesalahan 404 ini? :/
Terima kasih banyak!
/mainappdjango/static/media
tapi nginx menunjuk kemywebsite/site/media
. Dan Anda tidak boleh memiliki URL media apa pun di urls.py Anda. Aplikasi Django Anda tidak menyajikan berkas media. - person dirkgroten   schedule 21.09.2018pwd
untuk menampilkan path lengkap. Bagaimanapun, itulah jalur yang dibutuhkan nginx. - person dirkgroten   schedule 22.09.2018if settings.DEBUG
agar tidak digunakan untuk produksi. MEDIA_ROOT Anda mungkin berada di luar direktori proyek Anda, tidak masalah. Juga berfungsi denganrunserver
lokal - person dirkgroten   schedule 22.09.2018