当Heroku Dyno重新启动时,图像不会加载

时间:2013-07-24 13:39:03

标签: ruby-on-rails-3 heroku carrierwave activeadmin

我有一个奇怪的问题,我之前没有遇到过,似乎无法在网上找到任何关于它的任何其他信息。

我在Heroku上的免费实例上运行应用程序。使用Heroku免费实例,如果没有向服务器发出请求,Dyno将在30分钟左右断电。

我遇到的问题是当Heroku关闭并且必须重新启动时,通过Carrierwave Gem上传的图像(与Active Admin集成)没有被加载,这意味着我必须重新上传所有内容?

图像存储在公共目录中的服务器上。

之前是否还有其他人遇到此问题,如果是,您是否知道如何解决? :)

2 个答案:

答案 0 :(得分:1)

重新启动dyno时,存储在dyno中的文件将丢失。发生这种情况是因为创建了一个新的dyno并且不会在dynos中保留文件。不幸的是,即使付费的Heroku实例也会遇到这个问题,因为当您推送新版本时会创建一个新的dyno。

您的解决方案可能仅限于您正在使用的应用中提供的选项。一些可能的想法是将图像放在数据库中,将图像放在另一个服务提供商(如Amazon S3)上,或者将应用程序托管在其他地方。

答案 1 :(得分:1)

在Heroku上,您无法在服务器上本地保存文件\附件

阅读本文

https://devcenter.heroku.com/articles/read-only-filesystem

你可以保存到tmp文件夹,但不能保证留在那里

要上传文件,您应该使用某些外部存储,例如Amazon S3,例如