我已经尝试了许多不同的解决方案在网络上为这个问题但都没有成功
问题就在这里:我的应用需要知道它是在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外壳打开,没有vim。
我并不关心是否让vim工作,我只想能够在Heroku上写一个名为.env
的文件,这样我就可以在其中设置环境变量。
我如何才能做到这一点?
2条答案
按热度按时间h9vpoimq1#
在Heroku上不需要
.env
文件。.env
等文件的更改将很快丢失,并且.env
文件将无法在其他dynos上使用因此,在Heroku上创建一个
.env
文件并不是一个好方法。相反,你可以使用它的built-in support for environment variables、
heroku config:set <var> <value>
或它的web UI,无论哪种方式,你都会得到一个常规的环境变量。7fyelxc52#
这非常简单。就像你在.env文件中添加它们一样,在heroku的命令行中做同样的操作,你会看到heroku重新启动,你就可以再次飞行了。只需要使用命令:(heroku config:set VARIABLE=this_is_the_value)请记住在值中使用下划线,因为不允许使用空格,也不允许使用反引号(““)将其转换为单个字符串。