如何使用Django、Nginx、Docker和Traefik管理媒体文件?

如何使用Django、Nginx、Docker和Traefik管理媒体文件?,django,docker,nginx,docker-compose,traefik,Django,Docker,Nginx,Docker Compose,Traefik,我正在用Django在应用程序中上传和保存媒体文件(图像、PDF)。 它在开发模式下运行良好,但在服务器上部署时,会出现“404未找到请求的URL/mediafiles/images/test.jpg” 需要注意的“有趣”的是:我设法上传文件,我在主机上看到它们,以及两个容器(nginx和webserver),但每当我试图访问它们时,就会出现“未找到”错误 我已经阅读并尝试了许多没有成功的事情,比如修改nginx conf文件,玩docker compose文件。。你知道从现在起我应该去哪里吗

我正在用Django在应用程序中上传和保存媒体文件(图像、PDF)。 它在开发模式下运行良好,但在服务器上部署时,会出现“404未找到请求的URL/mediafiles/images/test.jpg”

需要注意的“有趣”的是:我设法上传文件,我在主机上看到它们,以及两个容器(nginx和webserver),但每当我试图访问它们时,就会出现“未找到”错误

我已经阅读并尝试了许多没有成功的事情,比如修改nginx conf文件,玩docker compose文件。。你知道从现在起我应该去哪里吗

以下是我认为相关的信息:

服务器:Ubuntu 16.04

Docker Compose Nginx配置 Django Settings.py Django URL.py
如果需要其他信息,请告诉我。提前谢谢你

这里的问题是
mediafiles
位置在根目录之前

server {
    listen       80;
    server_name  localhost;

    location /mediafiles {
        autoindex on;
        alias /usr/share/nginx/mediafiles/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

这里的问题是
mediafiles
位置在根目录之前

server {
    listen       80;
    server_name  localhost;

    location /mediafiles {
        autoindex on;
        alias /usr/share/nginx/mediafiles/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}
MEDIA_ROOT = '/code/server/mediafiles/'
MEDIA_URL = '/mediafiles/'
STATIC_URL = '/static/'
STATIC_ROOT = '/tmp/html/static/'
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT,)

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
server {
    listen       80;
    server_name  localhost;

    location /mediafiles {
        autoindex on;
        alias /usr/share/nginx/mediafiles/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}