Phoenix 渲染 404 和 500 为 JSON
Phoenix Rendering 404 and 500 as JSON
我在没有使用 --no-html
选项的情况下启动了一个 phoenix 项目,现在正试图确保 404
和 500
错误呈现为 JSON。该项目在 Phoenix 1.1.0
上启动,现已更新至 1.1.4
。
我已将 config/config.exs
文件的 render_errors
(在 config :my_app, MyApp.Endpoint
下)修改为 [view: MyApp.ErrorView, format: "json", accepts: ~w(json)]
。
所有路线都接受 JSON,目前 none 接受 HTML。
我修改了 web/web.ex
文件以删除 view
函数中的 Phoenix.HTML 的使用,并且我修改了 web/views/error_view.ex
以呈现 JSON.
然而此时 404
和 500
错误仍然 return html.
你更新你的 config.exs
了吗?
config :my_app, MyApp.Endpoint,
# ...
render_errors: [accepts: ~w(html json)],
# ...
返回什么样的html?也许它是您的开发环境的 phoenix 调试页面,您可以在 config/dev.exs
中将其禁用
config :my_app, MyApp.Endpoint,
# ...
debug_errors: false,
# ...
我在没有使用 --no-html
选项的情况下启动了一个 phoenix 项目,现在正试图确保 404
和 500
错误呈现为 JSON。该项目在 Phoenix 1.1.0
上启动,现已更新至 1.1.4
。
我已将 config/config.exs
文件的 render_errors
(在 config :my_app, MyApp.Endpoint
下)修改为 [view: MyApp.ErrorView, format: "json", accepts: ~w(json)]
。
所有路线都接受 JSON,目前 none 接受 HTML。
我修改了 web/web.ex
文件以删除 view
函数中的 Phoenix.HTML 的使用,并且我修改了 web/views/error_view.ex
以呈现 JSON.
然而此时 404
和 500
错误仍然 return html.
你更新你的 config.exs
了吗?
config :my_app, MyApp.Endpoint,
# ...
render_errors: [accepts: ~w(html json)],
# ...
返回什么样的html?也许它是您的开发环境的 phoenix 调试页面,您可以在 config/dev.exs
config :my_app, MyApp.Endpoint,
# ...
debug_errors: false,
# ...