Elixir 是否假定您在更新config.exs后运行mix deps.compile?
我已经开始使用Elixir+Phoenix框架,并开始合并用于用户注册/身份验证的库 addict的文档告诉我更新Elixir 是否假定您在更新config.exs后运行mix deps.compile?,elixir,phoenix-framework,Elixir,Phoenix Framework,我已经开始使用Elixir+Phoenix框架,并开始合并用于用户注册/身份验证的库 addict的文档告诉我更新:addict应用程序的config.exs config :addict, not_logged_in_url: "/error", db: MyApp.MyRepo, user: MyApp.MyUser, : 在我运行mix deps.compile以获取配置之前,替换db
:addict
应用程序的config.exs
config :addict, not_logged_in_url: "/error",
db: MyApp.MyRepo,
user: MyApp.MyUser,
:
在我运行mix deps.compile
以获取配置之前,替换db和用户值不会生效
现在我的问题是,在对config.exs
进行更改时,是否假定运行mix deps.compile
瘾君子医生并没有说明这一点,对于像我这样的新手来说,这并不明显。我只是在查看addict的代码时才意识到这一点,并看到它是在编译时通过模块属性设置的(因此有必要运行
mix deps.compile
)。只有当依赖项具有编译时配置时,才需要重新编译它们。编译时配置本身并不常见,因此您应该ping瘾君子
人员,让他们更好地了解编译后有人配置瘾君子
时会发生什么。或者说服他们,如果可以的话,首先避免编译时配置。要对此进行扩展(经过一点实验;我不完全确定),Application.get_env…
从config.exs读取似乎无法在不重新编译的情况下获取新值,无论是在模块属性中还是在运行时调用的函数中执行get_env
。如果需要运行时配置,建议使用第三方库。