Django - 生产中的媒体不工作

Django - Media in production is not working

我的静态文件工作正常,但我的媒体文件有问题。我已经在 heroku 中部署了我的网站,并且它在生产环境中是在线的。 (调试=假) 看代码:

settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = bool(os.environ.get('DJANGO_DEBUG', True))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    # '/var/www/static/'
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
STATICFILES_STORAGE = 
'whitenoise.storage.CompressedManifestStaticFilesStorage'

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)

models.py

cartaz = models.FileField(default='/static/images/logo.jpg')

index.html

<img src="{{campeonato.cartaz.url}}" class="img-responsive">

My Github repository

问题来了,我在管理部分上传了一张图片,然后效果很好,但几分钟后图片突然从网站上消失了,我收到以下错误:

Not Found:/media/tdscampeonatos_rzFCbET.jpg

然后我在 github 的项目中添加了一个媒体存储库,其中包含我上传的图像:

My Github repository after I added the media

然后我添加到媒体存储库的图像可以工作,但我没有添加的图像仍然无法工作。我上传了一些更多的图片,但我得到了同样的错误,因为这些图片没有直接进入我在 Github 存储库中创建的媒体路径。 5天试图解决这个问题,我已经在互联网上寻找了几乎所有的东西。请帮助我!

您正在 heroku 上部署。可能是爱好计划。在这个计划中,应用程序在不活动时进入休眠状态,然后在访问时重新部署。因此,最后 运行 期间创建的媒体文件被删除

您应该升级您的计划或考虑使用像 cloudinary 这样的第三方存储来存储媒体