2017-08-15 89 views

回答

1

所有这些方法都用于将环境变量提供给您的Rails应用程序。因此,从应用程序的角度来看,无论您是从.env还是.bashrcconfig/local_env.yml文件导出它,它都起到相同的作用。

这些方法的差异实际上是团队成员在维护应用程序开发和部署环境中的个人选择的问题。但是,在选择这两种选择时,几乎不需要考虑什么。

.bashrc - 如果您手动配置部署服务器,并且非常适合linux/unix命令行系统管理,请使用此选项。这个配置文件特定于bash shell(Bourne Again Shell)。您需要配置不同的文件,如果你的服务器使用不同的外壳(例如:.zshrc如果它使用的Z shell)

.env - 如果你想保持应用程序本身在您的应用为中心的环境变量,同时保持不同使用此您的Rails应用程序的不同运行时环境的环境变量的变化。例如:.env.development.env.test文件分别为您的开发和测试环境提供了环境变量的特定值。这使您可以更好地控制应用程序的环境变量,而不必依靠您想要部署应用程序的平台(终端外壳)。

config/local_env.yml - 这类似于.env的方法,这是由铁轨的宝石,允许您配置环境变量在阳明格式的应用程序提供开箱即用。这种方法还可以保持应用程序在应用程序中的配置,而不管您用于运行应用程序的shell。

+0

谢谢@ sa77!在后续问题中,当您部署应用程序时,服务器如何知道使用.env.production文件?那个集合在哪里? – mangocaptain

+1

@mangocaptain你只需要在'.env.production'上拥有你所有的配置,并且拥有'RAILS_ENV = production',并且在你的'config/environments /'下面有'require'dotenv' production.rb'文件为此工作 – sa77