2016-01-12 26 views

回答

2

您可以利用Mix的環境。您可以選擇只在生產環境中的東西添加plug調用是這樣的:

if Mix.env == :prod do 
    plug BasicAuth, realm: "Admin Area", username: "admin", password: "pass" 
end 

此行不會編譯任何東西(nil)如果Mix.env不生產。

7

雖然@ whatyouhide的回答是正確的,但在混合任務之外請注意在項目中使用Mix.env。如果您決定使用Exrm或relx來構建OTP版本,則混合庫將不會包含在內,這會在啓動時崩潰您的應用程序。

作爲一種替代方案,您可以將:env密鑰添加到每個環境的相應配置文件中,並將env值包含在其中,然後像使用Mix.env一樣使用它。

+2

爲了擴展這一點,您甚至可以使用特定於該特徵的密鑰而不是環境。例如有一個':true'或'false'值的':admin_auth'鍵。這樣,該功能與您的環境無關,使開發中的功能更加容易,從而確保其功能。 – Gazler

+0

@ Gazler的建議很棒。更明確的永遠不會回來咬你。但是,不那麼明確可以。 –

相關問題