Skip to main content
 首页 » 编程设计

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

2025年02月15日22rubylouvre

我看过许多其他堆栈溢出帖子,但我不知道为什么这不起作用

我关注了其他帖子并想出了这个:

# 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

请您参考如下方法:

将您的 MEDIA_URL 和 MEDIA_ROOT 更改为

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

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