Ale*_*hin 43 elixir phoenix-framework
我想在my/config/config.exs
文件中设置我的应用程序的标题:
config :my, My.Endpoint,
url: [host: "localhost"],
root: Path.dirname(__DIR__),
secret_key_base: "secret",
title: "My App"
Run Code Online (Sandbox Code Playgroud)
我怎样才能读到title
以后在模板中使用它?就像是:
<div>
Title of my app is <%= ??? %>
</div>
Run Code Online (Sandbox Code Playgroud)
我试过conn.title
,它说没有这样的钥匙.但是,当我尝试conn.secret_key_base
它的时候.为什么?
Tia*_*gel 60
该get_env功能是从药剂/二郎芯中的应用模块的一部分.
此函数返回应用程序环境中特定键的值.考虑到您的配置,您将以title
这种方式访问该属性:
Application.get_env(:my, My.Endpoint)[:title]
Run Code Online (Sandbox Code Playgroud)
第三个参数用于在config键不存在时传递默认值.
Sas*_*eca 32
你可以用 Application.get_env(:my, :title)
假设在dev.ex文件中,您有一个配置变量
config :app_name, AppName.Endpoint,
api_prefix: "api/v2",
api_host: "http://0.0.0.0",
api_port: "3000"
Run Code Online (Sandbox Code Playgroud)
您可以获取所有三个配置变量
Application.get_env(:app_name, AppName.Endpoint)[:api_prefix]
Application.get_env(:app_name, AppName.Endpoint)[:api_host]
Application.get_env(:app_name, AppName.Endpoint)[:api_port]
Run Code Online (Sandbox Code Playgroud)
为了在我使用的 phoenix 和其他模块的自定义配置和配置之间明确分离:
config :ace, :config,
root: Path.dirname(__DIR__),
title: "Ace"
Run Code Online (Sandbox Code Playgroud)
然后使用 get_env 调用检索值,例如:
iex> Application.get_env(:ace, :config)[:title]
"Ace"
Run Code Online (Sandbox Code Playgroud)