Heroku Django Static

时间:2013-01-10 16:57:30

标签: django heroku

静态图像是否会在很快点后过期并自动删除?

我的情况是我通过模型的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/',
)

1 个答案:

答案 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