静态图像是否会在很快点后过期并自动删除?
我的情况是我通过模型的ImageField从我的PostgreSQL数据库中检索图像,方法是将upload_to
设置为static/images
。然后,我通过mysitesurl.com/static/images/model.url
访问图像。这最初是完美的。然而,几个小时后,我注意到图像不再可访问。当我尝试通过相同的URL访问它们时,它们不再存在。我不做任何手动图像删除,因此我执行的操作不应该干扰这一点。
这是Heroku所做的事我不理解吗?
另外,我注意到的一个奇怪的事情是图像仍可通过网址访问,但实际上并未保存到static/images
。至少,当我运行heroku run ls static/images
时,它不在那里。这是检查heroku中目录内容的正确方法吗?
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'static',
'static/uploaded_stuff/',
)
答案 0 :(得分:4)
您可以从存储库目录运行heroku run bash --app YOUR_APP
。这会为您的Heroku实例创建一个shell,允许您浏览文件。
您可以通过这种方式检查静态图像。
我建议使用S3来提供静态图像。您可以查看有关如何集成它的本教程: http://blog.doismellburning.co.uk/2012/07/14/using-amazon-s3-to-host-your-django-static-files/
进一步的细节之后,您尝试允许用户上传,而Heroku的文件系统是只读的。您需要为静态/上传文件使用S3或类似的托管解决方案。 https://devcenter.heroku.com/articles/read-only-filesystem