Mej*_*eji 5 elixir phoenix-framework
为Phoenix/Elixir应用程序获取基本域的惯用方法是什么?不是单个请求,而是应用程序的基本域,可能取决于其当前环境.
所以本地应该是localhost,但在服务器上,它可以是"dev.my_domain.com","my_domain.com"或我可以在我的应用程序中使用的其他东西.
当然,我可以在一个config/dev.exs或中添加一个特殊的密钥config/prod.exs,但我认为可能已经有一个我可以重用的密钥.
对于请求,您应该使用类似@TheAnhLe建议的host字段Plug.Conn.
但是如果你想要获得域名,那么Phoenix允许你url在应用程序Endpoint配置中指定参数:
# config/prod.exs
config :my_app, MyAppWeb.Endpoint,
http: [port: {:system, "PORT"}],
url: [host: "example.com", port: 80],
# more configs...
Run Code Online (Sandbox Code Playgroud)
您可以使用这些方法来获取主机的值:
MyAppWeb.Endpoint.url
# => "http://localhost:4000"
Application.get_env(:my_app, MyAppWeb.Endpoint)[:url][:host]
# => "localhost"
Run Code Online (Sandbox Code Playgroud)
localhost未指定时,此值默认为.
小智 5
使用phoenix 1.3.0(不了解旧版本),您可以url/0从Endpoint API调用
例如:
iex(1)> TestWeb.Endpoint.url
"http://localhost:4000"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |