我相当基本的应用程序允许用户上传头像.
该应用程序部署到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 Files或Spideroack等外部服务