2016-01-26 188 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