Skip to content

Latest commit

 

History

History
63 lines (42 loc) · 3.32 KB

F_配置.md

File metadata and controls

63 lines (42 loc) · 3.32 KB

配置

因为 Phoenix 只是 Elixir 应用程序的一种,所以他的配置和结构和其他的 Mix 工程基本一致 (绝大多数的 Elixir 应用都 使用 Mix 作为构建工具)。

.ex and .exs Files Types

Phoenix 应用的配置存储在 .ex.exs 文件中,尽管这两种文件都是 Elixir 脚本,但他们在经过编译后还是差异。

.exs 文件是在每次运行时(比如重启)编译到内存中,这使得他非常适合那些变动非常频繁的配置(比如开发是时的独立 任务等)。

.ex 文件会被编译成 .beam 后缀的文件运行在 Erlang 虚拟机上 (Erlang Virtual Machine BEAM), 这使得他比较 适合存储变动不太频繁的配置 (比如 OTP 的 supervisor/worker 配置)。

配置文件和环境

mix.exs 配置文件在项目的根目录, 他包含一些非常重要的配置,包括编译路径,项目依赖以及别名等等。

Phoenix 应用惯例是在不同的环境下使用不同的配置文件,比如 开发环境生产环境。这使得开发者在部署应用时体 验一流,默认情况下,根目录的 /config 默认包含下列配置文件:

config.exs 是我们的主配置文件(master config file), 在所有环境下起效。包含总体的配置信息比如日志和 endpoint 细节,比如我们应用的 url 和根目录。另外文件的最下面,我们同样根据当前的环境引入对应的配置文件。我们可以在启动 或部署应用的时候通过设置 Mix.env 环境变量轻松的切换不同环境的配置文件。比如,我们将变量设置成 #prod.exs 来 启动生产服务器。

...
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{Mix.env}.exs"
...

dev.exs, 开发环境配置文件,包含调试设置以及数据库连接细节等。

prod.exs, 生产环境配置文件,这里的配置和开发或者测试都不同并且更加严格,比如,在生产环境下我们需要使用强哈希 的密码,这在开发和测试时可能会影响性能,但对于生产环境是不可避免的。

prod.secret.exs, 用于存储敏感的配置信息,比如密码 和 API 密钥等,因此需要在版本控制时将其排除在外,注意这里 的配置可以在其他文件中引用。

test.exs, 测试环境的配置文件。

这些文件中的配置大同小异。

另外除了默认的 开发环境 (dev.exs), 测试环境 (test.exs) 和生产环境 (prod.exs), Phoenix 同样支持自定义的环 境配置。

主从应用 (Umbrella Apps)

主从应用允许多个子应用在一起运行,这样,通过将不同功能分给子应用可以减轻应用的复杂性。详细谈论主从应用的细节超 过了本指南的范围,现在只需要知道主从应用的配置比正常应用有一些不同(甚至在某些方面更简单),因为一些配置的细节 由自应用保管。

总结

  • 应用的配置由 .ex.exs 文件保管。
  • .exs 文件每次会编译到内存中适用于保存改动频繁的配置。
  • Mix 应用默认包括开发环境,测试环境以及生产环境,还可以手动添加自定义环境。
  • 我们可以在 prod.secret.exs 存储敏感信息,排除在版本控制之外。