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

如何在Phoenix LiveView的mount/3中获取accept-language请求头?

获取LiveView的accept-language请求头

你可以通过以下方式在mount/3中获取accept-language请求头:

  1. 配置需要暴露的请求头
    默认情况下,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
        ]
      ]
    
  2. 在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:52:44