Как подключить модуль к контроллеру только в производственной среде?
Пример:
plug BasicAuth, realm: "Admin Area", username: "admin", password: "pass"
Как подключить модуль к контроллеру только в производственной среде?
Пример:
plug BasicAuth, realm: "Admin Area", username: "admin", password: "pass"
Вы можете воспользоваться средой Mix
. Вы можете выборочно добавить вызов plug
только в производственной среде примерно так:
if Mix.env == :prod do
plug BasicAuth, realm: "Admin Area", username: "admin", password: "pass"
end
Эта строка не будет компилироваться ни во что (nil
), если Mix.env
не является производственным.
realm:
, username:
и т. д.? в документации его нет!
- person Loading...; 04.02.2020
Хотя ответ @whatyouhide правильный, будьте осторожны при использовании Mix.env
в своем проекте за пределами задач смешивания. Если вы решите использовать Exrm или relx для создания выпусков OTP, библиотека mix не будет включена, и это приведет к сбою вашего приложения при запуске.
В качестве альтернативы вы можете добавить :env
ключ в соответствующий файл конфигурации каждой среды со значением env в нем, а затем использовать его так же, как Mix.env
.
:admin_auth
со значением true
или false
. Таким образом, функциональность не привязана к вашей среде, что упрощает включение функции в разработке, чтобы гарантировать ее работу.
- person Gazler; 13.01.2016