Phoenixアプリケーションをローカルで実行すると、すべてのリクエストのベースURLはhttp://localhost:4000
のようになります。プロダクションでは、それはhttps://example.com/
のようなものです。Phoenixアプリケーションの「ベースURL」を取得するにはどうすればよいですか?
このベースURLをJavaScriptに渡したいとします。どうすれば入手できますか?
注:
- 私は
conn
をチェックする必要はありません。これは、コンパイル時またはブート時に設定したいものです。要求時ではありません。 Application.get_env(:myapp, MyApp.Endpoint)[:url][:host] %
を確認できますが、スキーム(http
またはhttps
)またはポートは含まれていません。これをいくつかの場所からまとめなければならないかもしれないが、おそらくできるが、そうではないだろう。
「dev.exs」で生成されたコメントに「http:」と「https:」の両方のキーを設定して、別のポート "? –
Phoenix自体はエンドポイントの設定とElixirの組み込みの 'URI'モジュールを使ってURLを構築します:https://github.com/phoenixframework/phoenix/blob/10b6c1e8df915e82a4040f14f94afc1aed8ab47a/lib/phoenix/endpoint/supervisor.ex#L235-L255 – Dogbert