如何使用Django、Nginx、Docker和Traefik管理媒体文件?
我正在用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如何使用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文件。。你知道从现在起我应该去哪里吗
如果需要其他信息,请告诉我。提前谢谢你 这里的问题是
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;
}
}