Django - 生产媒体不起作用

时间:2017-08-09 13:23:24

标签: django git heroku media production-environment

我的静态文件运行良好,但我的媒体文件有问题。我已经在heroku部署了我的网站,并且它已在线生产。 (DEBUG =假) 看一下代码:

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天试图解决这个问题,我已经在互联网上找了几乎所有东西。请帮帮我!

1 个答案:

答案 0 :(得分:1)

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

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