Phoenix でURLのホスト名を取得

Elixir Phoenix Web
更新2020/11/21
PhoenixのViewで自身のHOST名を取得したいとき備忘録です

結論

アプリ名(mix phx.new するときにつけた名前)を AppName とすると
<%= AppNameWeb.Endpoint.url %>
のようにすると取得できる。

ちなみにcontroller 内でも使える。
Logger.info HydrargyrumWeb.Endpoint.url # [info] http://localhost:4000

余談

1.railsだと `root_url` とか `root_path` とか使えたけど、調べたかぎりphoenixにはそういうエイリアスっぽいのは見つけられなかった。
2. 本番などで `https` を返したいときは `prod.exs` で `scheme: "https"` を指定するといい感じになる。こんな感じに。  
config :hogefuga, HogefugaWeb.Endpoint,
  url: [host: "aqualamp.org",scheme: "https" ,port: 443],
  cache_static_manifest: "priv/static/cache_manifest.json"


書いた人/このブログについて

サーバーサイドエンジニア。お仕事ではRubyとPerl。趣味ではC#やHLSLなどを少しと、3DCGでPythonをごまかしながら使う感じ。Unityとインフラ周りも好き。

自分の備忘録もGoogle検索に任せたくてこのブログ書いてる。Phoenix製でEC2上で稼働中。