Chr*_*ris 24 elixir phoenix-framework
在Phoenix Framework中,如何获取当前环境的名称?
我已经尝试过用env变量读取变量了System.get_env("MIX_ENV"),但是并不总是设置值.
She*_*yar 46
Mix.env在生产或其他使用编译版本(使用Exrm/Distillery构建)或Mix刚刚不可用的环境中不起作用.
解决方案是在您的config/config.exs文件中指定它:
config :your_app, env: Mix.env
Run Code Online (Sandbox Code Playgroud)
然后,您可以在应用程序中获取环境原子,如下所示:
Application.get_env(:your_app, :env)
#=> :prod
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 12
你可以使用Mix.env/0:
iex(1)> Mix.env
:dev
Run Code Online (Sandbox Code Playgroud)
将其放入应用程序配置的另一种方法Mix.env/0是使用模块属性。这也适用于生产环境,因为模块属性是在编译时评估的。
defmodule MyModule do
@env Mix.env()
def env, do: @env
end
Run Code Online (Sandbox Code Playgroud)
如果您只需要特定位置的环境 - 例如启动应用程序管理程序时 - 这往往是更简单的解决方案。