我已经在网上针对这个问题尝试了很多不同的解决方案,但都没有成功。
问题在于:我的应用程序需要知道它是在Heroku(生产模式)还是本地(开发模式)上运行。为此,我们希望使用环境变量。我已经了解Heroku上的环境变量可以在.env
文件中设置。所以我的尝试是运行heroku run bash -a <app-name>
,然后通过这样做来安装vim:
mkdir ~/vim
cd ~/vim
# Staically linked vim version compiled from https://github.com/ericpruitt/static-vim
# Compiled on Jul 20 2017
curl 'https://s3.amazonaws.com/bengoa/vim-static.tar.gz' | tar -xz
export VIMRUNTIME="$HOME/vim/runtime"
export PATH="$HOME/vim:$PATH"
cd -
除了反复崩溃之外,当我登录和退出shell时,vim不再工作了:
~ $ vim // in the heroku shell
vim: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory
我也试过了heroku plugins:install heroku-vim
但是之后运行heroku vim
只会导致长时间的延迟,然后正常的heroku shell打开,没有vim。
如果我让vim上班,我真的不在乎。我只想在Heroku上写一个名为.env
的文件,这样我就可以在其中设置环境变量。
我怎样才能做到这一点?
答案 0 :(得分:2)
Heroku上不需要.env
文件。实际上,自
.env
等文件的更改很快就会丢失,.env
文件无法在其他dynos上播放因此,在Heroku上创建.env
文件并不是一个好方法。
相反,您可以使用heroku config:set <var> <value>
,使用primary key | name | date
或其网络用户界面。无论哪种方式,您都将获得常规环境变量。
答案 1 :(得分:1)
只需在揭示配置中定义键和值。在.env上使用它的方式相同。必须将.env文件提交到github是不安全的。 例如 Paystack_payment_url作为密钥 https://api.paystack.co作为值。
答案 2 :(得分:0)
这很简单。 就像您在 .env 文件中添加它们一样,对 heroku 的命令行执行相同的操作,您将看到 heroku 重新启动,您就可以再次飞行了。 只需使用命令: (heroku 配置:设置变量=this_is_the_value) 请记住在值中使用下划线,因为不允许使用空格,不允许使用倒引号 (" ") 将其转换为单个字符串。