我创建了我的网站,媒体工作正常,但现在在生产中静态文件没问题,但媒体文件不起作用。当用户制作新帖子时,通常您必须放置缩略图,并且您还可以使用文本编辑器使用 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-root
和chmod -R ug+rw /var/www/media-root