You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Phoenix框架测试报Phoenix.NotAcceptableError该如何解决?

问题原因及解决方案

1. 未执行mime库强制重编译命令

mime库会在编译期读取配置,修改配置后必须执行以下命令清空旧的编译产物强制重编译,否则新配置不会生效:

mix deps.clean --build mime

执行完成后再重启服务、重新运行测试即可。

2. 路由管道未配置允许json格式

报错提示预期仅支持["html"],说明你请求所属的路由管道仅配置了接受html格式,和mime配置无关,需要修改路由配置:

  • 若你开发的是API接口,直接将路由归入默认的api管道即可,该管道默认已配置支持json格式:
# lib/[你的项目名]_web/router.ex
scope "/api", YourAppWeb do
  pipe_through :api
  # 此处写你的接口路由
end
  • 若你需要在默认的browser管道同时支持html和json格式,修改browser管道的accepts配置:
pipeline :browser do
  plug :accepts, ["html", "json"]
  # 其余原有配置保持不变
end

3. 测试请求未明确指定json格式

如果仅在运行测试时触发该错误,说明测试请求没有明确声明接受json格式,两种修正方式二选一:

  • 直接在请求参数中指定format:
conn = get(conn, ~p"/你的请求路径", format: :json)
  • 手动添加Accept请求头:
conn = conn
  |> put_req_header("accept", "application/json")
  |> get(~p"/你的请求路径")

内容的提问来源于stack exchange,提问作者Daniel Cukier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:00