Phoenix: alterando o título da página a partir do controller
Phoenix >= 1.7
Dentro do arquivo
root.html.heex
, existe o seguinte trecho dentro da tag head
:<.live_title suffix=" · Anthu"> <%= assigns[:page_title] || "Anthu" %></.live_title>
O live.title é um PhoenixComponent que tem como função renderizar um title dinâmico para sua página.
Phoenix <= 1.6
Dentro do arquivo root.hoot.heex
, existe o seguinte trecho dentro da tag head
: <%= live_title_tag assigns[:page_title] || "home", suffix:
" · SuaAplicação" %>
O live_title_tag
é um macro disponibilizado pelo Phoenix que serve para gerar titles
dinâmicos. Ele irá usar o assing
:page_title
, junto com um
sufixo, para gerar o título da página. O sufixo é fixo, vai estar lá em toda página da aplicação, e se você preferir,
pode alterar para prefixo através da opção prefix
.
Sabendo disso, basta ir no seu controller e na função render
, e passar o page_title
que você quiser, como no seguinte exemplo:
def show(conn, %{"slug" => slug}) do with post <- Blog.get_post(slug) do render(conn, "show.html", post: post, page_title: post.title) end end
Feito, título customizado!