在Django上传图像无法在数字海洋上生产

时间:2017-03-19 20:34:15

标签: python django django-models debian digital-ocean

我创建了自己的网站,媒体工作正常,但现在生产静态文件还可以,但媒体文件不起作用。通常情况下,当用户创建新帖子时,您必须放置缩略图,并且还可以使用文本编辑器使用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代码。

1 个答案:

答案 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-rootchmod -R ug+rw /var/www/media-root