2013-07-24 29 views
0

我遇到了一個奇怪的問題,我之前沒有遇到過,並且似乎無法在線查找任何其他信息。當Heroku Dyno重新啓動時,圖片無法加載

我在Heroku上的免費實例上運行應用程序。如果沒有對服務器的請求,在30分鐘左右之後,使用Heroku免費實例,Dyno會關閉電源。

我遇到的問題是,當Heroku關閉並且必須重新啓動時,通過Carrierwave Gem(與Active Admin集成)上載的圖像未被加載,這意味着我必須重新上傳所有內容?

圖像正被存儲在服務器的公共目錄中。

有沒有其他人有過這個問題,如果是的話,你知道如何解決它? :)

回答

1

重新啓動測功機時,存儲在您的測功機中的文件將丟失。發生這種情況是因爲創建了一個新的動態碼,並且文件沒有保存在各個動態碼中。不幸的是,即使是付費的Heroku也會遇到這個問題,因爲在推送新版本時會創建新的測試儀。

您的解決方案可能僅限於通過您正在使用的應用程序提供的選項。一些可能的想法是將圖像放置在數據庫中,將圖像放在另一個服務提供商(如Amazon S3)上,或將應用程序託管在別處。

+0

這裏是附加信息從Heroku的網站:https://devcenter.heroku.com/articles/dynos。請參閱臨時文件系統。 「每臺dyno都有它自己的臨時文件系統,並有最新部署的代碼的全新副本。在dyno的整個生命週期中,它的運行進程可以使用文件系統作爲臨時暫存器,但沒有任何寫入的文件對任何其他dyno並且任何寫入的文件都將在測功機停止或重新啓動時丟棄。「 –

+0

感謝您的回答邁克爾 - 我最好設置亞馬遜:) –

+0

或轉移到其他服務,如OpenShift – obenda

1

在Heroku上,你不能在本地保存在服務器上的文件\附件

閱讀本

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

您可以保存到tmp文件夾,但不能保證呆在那裏

爲了上傳文件,您應該使用一些外部存儲器,如亞馬遜S3,例如

+0

感謝您的幫助Obenda! –