在服务器启动时读取文件并在 Phoenix 中初始化变量

Reading from file and initialising variable in Phoenix on server startup

我有一个大文件,其中包含我想在服务器启动时读入列表的单词。然后该列表应该在控制器中可用。

我认为文件读取应该发生在 lib/Appname.ex

我想出了一个办法。重点是将一堆单词读入内存并能够 select 随机单词。我做了什么:

  • 将文件放入 /web/static/assets
  • 在/lib/Appname.ex中初始化了一个属性并做了一个获取随机词的方法:

@words File.read!("web/static/assets/words.txt") |> String.split("\n")</p> <p>def word 做 @words |> Enum.random 结尾

  • 调用了控制器中的方法: def index(conn, _params) do render conn, "index.html", word: Appname.word() end

不知道这是否是个好方法,但它确实有效。