Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku 带插头和牛仔的长生不老药:禁用nice错误消息_Heroku_Elixir_Production_Cowboy_Plug - Fatal编程技术网

Heroku 带插头和牛仔的长生不老药:禁用nice错误消息

Heroku 带插头和牛仔的长生不老药:禁用nice错误消息,heroku,elixir,production,cowboy,plug,Heroku,Elixir,Production,Cowboy,Plug,我正在使用将应用程序部署到Heroku。我的应用程序由一个简单的插件/牛仔设置组成。我注意到,当发生未处理的异常时,会出现一条漂亮的错误消息,显示堆栈跟踪和出现错误的代码行 这对于开发环境是可以的,但是在生产环境中,我不希望我的代码对访问者可见。如何禁用或覆盖默认行为 我尝试在Heroku中将MIX\u ENV环境变量设置为prod,但没有效果。将Plug.Debugger语句包装在if子句中。在prod环境中运行时,错误不再显示为html页面 您正在使用Plug.Debugger吗?没有代码很

我正在使用将应用程序部署到Heroku。我的应用程序由一个简单的插件/牛仔设置组成。我注意到,当发生未处理的异常时,会出现一条漂亮的错误消息,显示堆栈跟踪和出现错误的代码行

这对于开发环境是可以的,但是在生产环境中,我不希望我的代码对访问者可见。如何禁用或覆盖默认行为


我尝试在Heroku中将
MIX\u ENV
环境变量设置为
prod
,但没有效果。

将Plug.Debugger语句包装在if子句中。在prod环境中运行时,错误不再显示为html页面


您正在使用Plug.Debugger吗?没有代码很难找到解决方案…谢谢-在if子句中包装
使用Plug.Debugger
,就像在上的示例中一样,它正是我所需要的。您能否将此添加到您的答案中,以供将来的读者阅读?旁注:在生产中更改
MIX_ENV
没有多大意义,因为一开始甚至没有
MIX
应用程序(除非您在发行版中明确包含它,这一点基本上是错误的)@mudasobwa,但似乎
Mix.env
具有正确的值(请查看公认的答案)。它从哪里得到值?在正确的答案中,这段代码是编译的。在编译阶段,肯定存在
mix
,并且定义了
mix.env
。在生产中,不再有
mix
的踪迹。也就是说,在运行时根本没有条件,这段代码被编译为void AST.@mudasobwa应用程序是在Heroku上编译的,这就是为什么我认为环境变量在编译阶段也会有影响。
  if Mix.env == :dev do
    use Plug.Debugger, otp_app: :my_app
  end