我刚开始使用Phoenix,在我生成的应用程序中注意到有prod.exs
和prod.secret.exs
文件。但是,加载在prod.secret.exs
文件中的机密值来自环境变量,实际上并没有提交给repo。如果是这样的话,prod.secret.exs
文件是必要的吗?我可以在prod.exs
中加载环境变量中的所有内容并结束它吗?
prod.secret.exs
是在我们拥有易于使用的版本运行时配置之前管理机密的另一种方法。我相信现在这是一种遗产。
我之所以把这作为一个答案而不是一个评论,是因为我愿意声明,在长生不老药的世界里,几乎没有任何公约,[几乎]一切都是明确的。
.exs
是一个脚本文件,与.ex
文件不同,默认情况下不由mix
编译。prod.secret.exs
可能被命名为foo.bar.baz.exs
,phoenix框架使用它的唯一原因是它是从prod.exs
显式加载的。
后者又由于config.exs
具有一条线import_config("#{Mix.env()}.exs")
而被加载。
也就是说,对于elixir和phoenix框架的现代版本,人们可能会坚持系统环境配置和运行时发布配置。没有任何约定强制开发人员使用prod.secret.exs
,而且从未使用过(尽管如此,该文件还是由特定于环境的配置显式加载的。(