在git push heroku之后 - Heroku上传的文件丢失了

Val*_*mer 12 git heroku

我相当基本的应用程序允许用户上传头像.

该应用程序部署到Heroku上

$ git add .
$ git commit -m "description"
$ git checkout master
$ git merge my-cool-new-feature
$ git push heroku
Run Code Online (Sandbox Code Playgroud)

问题是,每次我将更改推送到Heroku时,上传到Heroku的所有文件都将丢失.我想,问题是文件夹/文件受版本控制,所以我将文件夹添加到.gitignore

# Ignore User generated files
/public/system/*
Run Code Online (Sandbox Code Playgroud)

并从存储库中删除文件.

$ git rm -rf --cached public/system
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在.你能为我指出正确的方向吗?

Jea*_*rtz 27

原因是Heroku限制了您在服务器上存储数据的方式.回到bamboo堆栈时代,如果不使用外部服务,则无法存储任何数据.由于他们引入了Cedar堆栈,事情发生了一些变化,但仍然无法存储持久数据.

正如您所发现的,每次将新更改推送到Heroku应用程序时(或每次应用程序关闭并在非活动状态x分钟后重新启动),都会重新创建应用程序并丢失所有存储的数据.

您最好的选择是根本不使用/ public目录,并开始使用Amazon S3,Rackspace Cloud FilesSpideroack等外部服务

  • 那么,数据库和文件访问是两回事.Heroku必须支持某种持久存储,否则开发人员快速启动功能应用程序将毫无用处,因此它们允许您访问共享的postgreSQL实例,但不包括文件存储访问. (3认同)