在 Django 中上传图像在数字海洋的生产中失败



我创建了我的网站,媒体工作正常,但现在在生产中静态文件没问题,但媒体文件不起作用。当用户制作新帖子时,通常您必须放置缩略图,并且您还可以使用文本编辑器使用 django-summernote 将图片添加到您的帖子中。无论如何,它应该将它们上传到服务器中的媒体根目录,但它没有。它只是给了我 500 个服务器错误,在编辑器中它给了我

上传图像时出错:无法保存附件

我的 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代码。

如果你使用的是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

最新更新