2016-01-26 395 views
14

在Phoenix Framework中,如何獲取當前環境的名稱?獲取當前環境名稱

我已經試過讀env變量與System.get_env("MIX_ENV"),但值並不總是設置。

回答

12

答案是http://elixir-lang.org/docs/stable/mix/Mix.html

iex(1)> Mix.env 
:dev 
+0

這不會在應用程序代碼中,在運行時和生產中工作。 – atomkirk

+0

'Mix'在已編譯的生產應用程序中不可用,因此在該環境中運行的任何代碼中的'Mix.env'將導致以下錯誤:'(UndefinedFunctionError)未定義的函數Mix.env/0(模塊Mix不可用)' 使用Sheharyar的答案是一個更好的主意。 –

16

Mix.env生產或在您使用編譯版本的其它環境中無法正常工作(使用Exrm /酒廠建),或在Mix不可用。


解決方案是在你的config/config.exs文件中指定它:

# config/config.exs 
config :your_app, env: Mix.env 

然後,您可以得到這樣在你的應用環境原子:

Application.get_env(:your_app, :env) 
#=> :prod