Elixir Phoenix将404和500呈现为JSON
我启动了一个phoenix项目,没有使用Elixir Phoenix将404和500呈现为JSON,elixir,phoenix-framework,Elixir,Phoenix Framework,我启动了一个phoenix项目,没有使用--no-html选项,现在正试图确保404和500错误呈现为JSON。该项目开始于Phoenix1.1.0,并已更新为1.1.4 我已经将config/config.exs文件的render\u errors(在config:my\u app,MyApp.Endpoint下)修改为[视图:MyApp.ErrorView,格式:“json”,接受:~w(json)] 这些路由都接受JSON,目前没有一个接受HTML 我修改了web/web.ex文件以删除v
--no-html
选项,现在正试图确保404
和500
错误呈现为JSON。该项目开始于Phoenix1.1.0
,并已更新为1.1.4
我已经将config/config.exs
文件的render\u errors
(在config:my\u app,MyApp.Endpoint
下)修改为[视图:MyApp.ErrorView,格式:“json”,接受:~w(json)]
这些路由都接受JSON,目前没有一个接受HTML
我修改了web/web.ex
文件以删除view
函数中的use Phoenix.HTML,并修改了web/views/error\u view.ex
以呈现JSON
但是此时
404
和500
错误仍然返回html。您是否更新了config.exs
config :my_app, MyApp.Endpoint,
# ...
render_errors: [accepts: ~w(html json)],
# ...
返回什么类型的html?也许您可以在config/dev.exs
config :my_app, MyApp.Endpoint,
# ...
debug_errors: false,
# ...
是的,我更新了我的
config/config.exs
,如原帖子所述。经过仔细检查,这是开发环境的phoenix调试页面,感谢您指出这一点。但是将debug\u errors
更改为false
,似乎并没有改变dev环境中的错误。但是在prod
环境中运行它似乎是可行的。因此,我将此标记为正确答案。请记下我对debug\u错误
不在dev中工作的评论。我在config/config.exs
中设置了它,而不是在覆盖它的config/dev.exs
中设置的。