我创建了自己的网站,媒体工作正常,但现在生产静态文件还可以,但媒体文件不起作用。通常情况下,当用户创建新帖子时,您必须放置缩略图,并且还可以使用文本编辑器使用django-summernote将图片添加到帖子中。无论如何,它应该将它们上传到服务器中的媒体根,但它不会。它只给我500服务器错误,并在编辑器中给我
上传图片时出错:保存附件失败
my urls.py
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
和我的settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/static-root/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
# '/var/www/static/',
]
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/media-root/'
我读过我可能需要在另一台服务器上提供媒体和静态服务 为什么?静态工作正常,但媒体没有。
我正在使用Debian代替Django代码。
答案 0 :(得分:0)
如果你正在使用nginx,你需要告诉它在哪里找到/ media /文件,所以在你的nginx配置服务器文件中你需要添加:
location /media/ {
autoindex on;
alias /var/www/media-root/;
}
另外,我更喜欢使用MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
将媒体文件放在我的项目文件夹中。在您的方式中,您需要创建文件夹并为其授予权限mkdir /var/www/media-root
和chmod -R ug+rw /var/www/media-root