【发布时间】:2020-05-09 13:03:52
【问题描述】:
我已经在 URL.py 中配置了 Django3.0 / Ubuntu 18 / NginX Media root:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在 Nginx 中:
server {
listen 80;
server_name XXXXX.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/proj;
}
location /media/ {
root /home/user/proj;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/proj_gunicorn.sock;
}
}
在模型中,我有一些带有“upload_to”属性的 FileField 和 ImageField。当我通过管理员上传内容时,一切正常,文件将上传到子文件夹(eg. media/2020/avatar/1.jpg),但是当我通过表单上传时,文件将上传到正确的子目录,但图像(或文件)URL 显示根目录媒体(eg. media/1.jpg),当我点击 URL 时,它返回 404。我不知道为什么会这样,我已经在几十个网站上使用了这个配置,它们就像一个魅力。
有什么想法吗?
【问题讨论】:
标签: django nginx django-3.0