如何仅在生产环境中将模块插入控制器?
How to plug module in controller only in production env?
如何仅在生产环境中将模块插入控制器?
示例:
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
如果 Mix.env
不是生产环境,这一行将不会编译成任何东西 (nil
)。
虽然@whatyouhide 的回答是正确的,但在混合任务之外的项目中使用 Mix.env
时要小心。如果您决定使用 Exrm 或 relx 来构建 OTP 版本,则不会包含混合库,这会导致您的应用程序在启动时崩溃。
作为替代方案,您可以向每个环境的相应配置文件添加一个 :env
密钥,其中包含 env 值,然后像 Mix.env
.
一样使用它
如何仅在生产环境中将模块插入控制器?
示例:
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
如果 Mix.env
不是生产环境,这一行将不会编译成任何东西 (nil
)。
虽然@whatyouhide 的回答是正确的,但在混合任务之外的项目中使用 Mix.env
时要小心。如果您决定使用 Exrm 或 relx 来构建 OTP 版本,则不会包含混合库,这会导致您的应用程序在启动时崩溃。
作为替代方案,您可以向每个环境的相应配置文件添加一个 :env
密钥,其中包含 env 值,然后像 Mix.env
.