在iex中为何无法调用config_env()函数?
解决方法
- 别用
Config.config_env(),在iex里直接用Mix.env()就能拿到当前环境:iex> Mix.env() :dev # 返回结果是:dev、:test或:prod这类原子 - 报错原因:
Config模块是给**编译阶段的配置文件(比如config.exs、runtime.exs)**设计的,运行时(比如打开iex之后)再调用它的函数就会触发这个错误——此时应用配置已经加载完成,Config模块的操作逻辑不支持运行时调用。 - 如果是在没有Mix的环境(比如生产环境发布后的应用),可以用这两种方式获取:
# 方式1:前提是你在config里提前配置过:env字段 Application.get_env(:你的应用名, :env) # 方式2:读取系统环境变量MIX_ENV System.get_env("MIX_ENV") |> String.to_atom()
内容的提问来源于stack exchange,提问作者Chen Yu
相关产品推荐
相关产品推荐

