【发布时间】:2019-02-10 20:16:06
【问题描述】:
我正在使用heroku-buildpack-elixir 将应用程序部署到 Heroku。我的应用程序包含一个简单的 Plug/Cowboy 设置。我注意到,当发生未处理的异常时,会出现一条很好的错误消息,显示堆栈跟踪和出现错误的代码行。
这对于开发环境来说是可以的,但是在生产环境中我不希望我的代码对访问者可见。如何禁用或覆盖默认行为?
我尝试在 Heroku 中将 MIX_ENV 环境变量设置为 prod 无效。
【问题讨论】:
-
旁注: 在生产环境中更改
MIX_ENV没有多大意义,因为一开始甚至没有mix应用程序(除非您已明确将其包含在您的release,简而言之,这基本上是错误的。) -
@mudasobwa 但似乎
Mix.env具有正确的值(查看接受的答案)。它从哪里获得价值? -
在正确答案中,这段代码是编译的。在编译阶段
mix肯定存在并且Mix.env被定义。在生产中,不再有mix的踪迹。也就是说,在运行时根本没有无条件,这段代码被编译为 void AST。 -
@mudasobwa 该应用程序是在 Heroku 上编译的,这就是为什么我认为环境变量也会在编译阶段产生影响。
标签: heroku elixir production cowboy plug