Django不在调试环境中提供媒体文件

时间:2017-05-11 00:03:57

标签: python django

我看了很多其他的堆栈溢出帖子,我不知道为什么这不起作用

我已经关注了其他帖子并提出了这个问题:

# settings.py
MEDIA_ROOT = 'media/'
MEDIA_URL = 'http://localhost:8000/media/'

# myapp/models.py
class Profile(models.Model):
    avatar = models.ImageField(upload_to='profile/', blank=True, null=True)

# myapp/urls.py
if (settings.DEBUG):
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我收到了来自django的404回复,不确定是否有我遗失的东西。

运行Python 3.6.1和Django 1.10.6

1 个答案:

答案 0 :(得分:1)

将您的MEDIA_URL和MEDIA_ROOT更改为

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

因为MEDIA_ROOT是保存文件的绝对路径。 MEDIA_URL是处理MEDIA_ROOT提供的媒体的网址。