Elixir 如何通过用户代理切换布局
我正在用Phoenix框架创建一个网站 我想使用不同的布局和模板,这取决于用户是使用PC还是智能手机 所以,我想通过检查用户代理来切换布局和模板 检查用户代理和切换布局和模板的最佳方法是什么?Elixir 如何通过用户代理切换布局,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在用Phoenix框架创建一个网站 我想使用不同的布局和模板,这取决于用户是使用PC还是智能手机 所以,我想通过检查用户代理来切换布局和模板 检查用户代理和切换布局和模板的最佳方法是什么? 或者,你知道有什么有用的库可以做这件事吗?你可以在一个插件中轻松完成这件事。传递到您的插件的conn结构有一个:req\u headers键,该键将包含“用户代理”等头。您可以直接使用它,也可以使用类似解析库的方法对布局选择进行条件化。然后,您可以使用Phoenix.Controller.put\u la
或者,你知道有什么有用的库可以做这件事吗?你可以在一个插件中轻松完成这件事。传递到您的插件的
conn
结构有一个:req\u headers
键,该键将包含“用户代理”
等头。您可以直接使用它,也可以使用类似解析库的方法对布局选择进行条件化。然后,您可以使用Phoenix.Controller.put\u layout/2
例如,使用ua_inspector:
def some_plug(conn) do
ua = get_req_header(conn, "user-agent")
case UAInspector.parse(ua).os.name do
"iOS" -> Phoenix.Controller.put_layout(conn, "mobile")
_ -> Phoenix.Controller.put_layout(conn, "desktop")
end
end