查看源代码 Phoenix.LiveDashboard.Router (LiveDashboard v0.8.4)

提供 LiveDashboard 的 LiveView 路由。

概述

函数

定义 LiveDashboard 路由。

函数

链接到此宏

live_dashboard(path, opts \\ [])

查看源代码 (宏)

定义 LiveDashboard 路由。

它需要仪表板将要安装的 path 和一组选项。然后,您可以直接链接到该路由

<a href={~p"/dashboard"}>Dashboard</a>

选项

  • :live_socket_path - 配置套接字路径。它必须与您端点中的 socket "/live", Phoenix.LiveView.Socket 相匹配。

  • :csp_nonce_assign_key - 一个分配键,用于查找用于资产的 CSP nonce 值。支持 atom() 或类型为 %{optional(:img) => atom(), optional(:script) => atom(), optional(:style) => atom()} 的映射

  • :ecto_repos - 要显示数据库信息的存储库。目前仅支持 PostgreSQL、MySQL 和 SQLite 数据库。如果您未指定,但您的应用程序正在运行 Ecto,我们将尝试自动发现可用的存储库。您可以通过将 [] 设置为此选项来禁用此行为。

  • :env_keys - 配置要显示的环境变量。它定义为字符串键的列表。如果未设置,则不会显示环境信息

  • :home_app - 显示在主页上的应用程序名称和版本的元组。默认值为 {"Dashboard", :phoenix_live_dashboard}

  • :metrics - 配置从其检索指标的模块。它可以是 module{module, function}。如果没有给出任何内容,指标功能将被禁用。如果传递了 false,则菜单项将不可见。

  • :metrics_history - 配置一个用于检索指标历史记录的回调。它必须是 {Module, :function, arguments} 的 “MFA” 元组,例如 metrics_history: {MyStorage, :metrics_history, []} 如果未设置,指标将从空/空白开始,并且仅显示浏览器页面打开期间发生的数据。

  • :on_mount - 声明一个自定义的 Phoenix.LiveView.on_mount/1 回调列表,以添加到仪表板的 Phoenix.LiveView.Router.live_session/3。也可以声明单个值。

  • :request_logger - 默认情况下,请求记录器页面已启用。传递 false 将禁用此页面。

  • :request_logger_cookie_domain - 配置将写入请求记录器 cookie 的域。它可以是字符串或 :parent 原子。当给出字符串时,它将直接将 cookie 域设置为给定的值。当给出 :parent 时,它将从当前端点主机获取父域(如果主机是“www.acme.com”,则 cookie 将在“acme.com”上进行范围界定)。如果未设置,cookie 将在当前域上进行范围界定。

  • :allow_destructive_actions - 当为 true 时,允许直接从 UI 执行破坏性操作。默认为 false。仪表板中提供以下破坏性操作

    • "Kill process" - 进程模态上的 “Kill process” 按钮

    请注意,给定给 “Additional pages” 的自定义页面可能支持它们自己的破坏性操作。

  • :additional_pages - 附加页面的关键字列表

示例

defmodule MyAppWeb.Router do
  use Phoenix.Router
  import Phoenix.LiveDashboard.Router

  scope "/", MyAppWeb do
    pipe_through [:browser]
    live_dashboard "/dashboard",
      metrics: {MyAppWeb.Telemetry, :metrics},
      env_keys: ["APP_USER", "VERSION"],
      metrics_history: {MyStorage, :metrics_history, []},
      request_logger_cookie_domain: ".acme.com"
  end
end