如何在Phoenix LiveView的mount/3中获取accept-language请求头?
获取LiveView的accept-language请求头
你可以通过以下方式在mount/3中获取accept-language请求头:
配置需要暴露的请求头
默认情况下,Phoenix LiveView不会将所有请求头暴露给connect_info,你需要明确指定要包含accept-language。如果只针对特定路由,可在路由定义中单独配置:# 在lib/your_app_web/router.ex中 live "/your-specific-route", YourLiveView, :index, connect_info: [:accept_language, session: @session_options]若需要全局生效,可在
config.exs或对应环境配置文件中修改Endpoint的LiveView配置:config :your_app, YourAppWeb.Endpoint, live_view: [ connect_info: [ :user_agent, :accept_language, session: @session_options ] ]在mount/3中获取请求头
配置完成后,直接在mount/3中调用get_connect_info/2即可拿到accept-language的值:def mount(_params, _session, socket) do accept_language = get_connect_info(socket, :accept_language) # 根据需求处理语言信息,比如解析后存入socket赋值 {:ok, assign(socket, :accept_language, accept_language)} end
这种方式无需额外编写Plug,且能精准针对特定路由生效,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

