當我在本地運行我的Phoenix應用程序時,所有請求的基本URL類似http://localhost:4000
。在生產中,它就像https://example.com/
。如何獲取鳳凰應用程序的「基本網址」?
我想通過這個基地址到我的JavaScript。我怎麼才能得到它?
注:
- 我不想檢查
conn
;這是我想在編譯或啓動時設置的,而不是在請求時設置的。 - 我知道我可以檢查
Application.get_env(:myapp, MyApp.Endpoint)[:url][:host] %
,但那不包括計劃(http
或https
)或港口。如果我必須從幾個地方拼湊這些,我可能可以,但我寧願不要。
也許這並不簡單,因爲正如'dev.exs'中生成的註釋所說的那樣,「如果需要,可以將http:'和'https:'鍵都配置爲同時運行不同的http和https服務器港口「? –
Phoenix本身使用Endpoint配置和Elixir的內置'URI'模塊構建URL:https://github.com/phoenixframework/phoenix/blob/10b6c1e8df915e82a4040f14f94afc1aed8ab47a/lib/phoenix/endpoint/supervisor.ex#L235-L255。 – Dogbert