我最近在数字海洋上部署了django应用。在尝试创建包含图像的对象之前,一切工作都很好。我收到一条错误消息说服务器错误(500)。
这是我尝试做的事情:
server {
listen 80;
server_name ****;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/joseph/hacka;
}
location /media/ {
root /home/joseph/hacka;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
这是我的settings.py代码:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
不幸的是,这还没有解决。
如果您知道我的问题的答案,请帮助我。
更新:
我发现了我的代码存在的问题:将debug设置为True时,出现错误消息
errno 13: Permission denied.
但是,我不知道该如何解决。
如果可以,请帮助我。
答案 0 :(得分:1)
只需要像这样在setting.py中从MEDIA_URL中删除“ /” MEDIA_URL ='媒体/'
答案 1 :(得分:0)
我想您的问题是由于媒体文件引起的。
您是否检查过media
设置?
您需要检入settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
答案 2 :(得分:0)
我可能也遇到过类似的问题。我的设置是在Nginx后面运行的Gunicorn。将文件上传到django媒体库时,该请求不会显示在Gunicorn的访问日志中。这意味着它被Nginx停止,并返回了500错误代码。进一步的搜索导致找到该网站https://killtheradio.net/technology/nginx-returns-error-on-file-upload/,它解决了我的问题。
基本上,Nginx临时将文件正文保存到/var/lib/nginx/client_body
的磁盘上。但是Nginx进程无法访问此文件夹。然后一个简单的chown解决了这个问题。