2017-08-15 65 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