Sto cercando di ottenere l'identificatore di un sito Web in base al suo dominio, ma dopo averne scritto uno, sto correndo in un problema in cui tutti i link nel sistema stanno restituendo il contenuto dell'URL di root .Elixir Phoenix variabile globale plug
lib/frontend/spine/request_var.ex
defmodule Myapp.Plug.RequestVar do
import Plug.Conn
@doc false
def init(default), do: default
@doc false
def call(conn, router) do
host = conn.host
if host == "ll.com" || host == "domain1.com" do
slug = "domain1"
else
slug = "domain2"
end
conn |> put_private(:site_slug, slug)
end
end
in lib/frontend/endpoint.ex
plug Myapp.Plug.RequestVar, Myapp.Router
plug Myapp.Router
sia qualcosa di sbagliato con questo plug?
Modifica: Risolto il problema "se" in base alle risposte.
Grazie Gazler Puoi anche dire dove dovrei collocare questo codice di struct_url che sovrascrive in modo che sia globalmente efficace? Mi dispiace, sono molto nuovo a Phoenix. –
@ PratikKhadloya Prima di tutto, hai sicuramente bisogno di usare il formato '_url' e non il formato' _path'? Se lo fai, puoi dirmi da dove lo chiami? – Gazler
Uno dei miei link è un collegamento di login, che non sono sicuro di come usare _url. '<% = link" Login ", a:"/login ", classe:" nav-link "%>'. Quando clicco su questo link restituisce l'intero html della casa pagina di nuovo, dando la sensazione che non sta accadendo nulla nella pagina. Non ho ancora provato la soluzione struct_url –