我有一个奇怪的问题,我之前没有遇到过,似乎无法在网上找到任何关于它的任何其他信息。
我在Heroku上的免费实例上运行应用程序。使用Heroku免费实例,如果没有向服务器发出请求,Dyno将在30分钟左右断电。
我遇到的问题是当Heroku关闭并且必须重新启动时,通过Carrierwave Gem上传的图像(与Active Admin集成)没有被加载,这意味着我必须重新上传所有内容?
图像存储在公共目录中的服务器上。
之前是否还有其他人遇到此问题,如果是,您是否知道如何解决? :)
答案 0 :(得分:1)
重新启动dyno时,存储在dyno中的文件将丢失。发生这种情况是因为创建了一个新的dyno并且不会在dynos中保留文件。不幸的是,即使付费的Heroku实例也会遇到这个问题,因为当您推送新版本时会创建一个新的dyno。
您的解决方案可能仅限于您正在使用的应用中提供的选项。一些可能的想法是将图像放在数据库中,将图像放在另一个服务提供商(如Amazon S3)上,或者将应用程序托管在其他地方。
答案 1 :(得分:1)
在Heroku上,您无法在服务器上本地保存文件\附件
阅读本文
https://devcenter.heroku.com/articles/read-only-filesystem
你可以保存到tmp文件夹,但不能保证留在那里
要上传文件,您应该使用某些外部存储,例如Amazon S3,例如