Elixir 中的外部应用程序配置
External Application Configuration in Elixir
我在使外部应用程序配置正常工作时遇到了一些问题。我目前正在编写一个基于文本的冒险游戏来学习 Elixir。我正在考虑将 "room" 定义存储为 JSON 在 "assets" 目录中。
看一下我的目录结构:
.
├── _build
│ ├── dev
│ └── test
├── assets
│ ├── rooms <---
│ └── items
├── config
├── deps
│ └── poison
├── lib
│ └── myzork
└── test
我试过Application.app_dir/1
和Application.app_dir/2
,但是当我使用iex -S mix
.
时,_build
下的那些参考文件
我如何让这个目录与我的代码一起发布?有没有长生不老药的方式来引用这些文件?还是我以完全错误的方式解决了这个问题?
如果你想在构建和发布应用程序时随身携带这些资产,那么我建议将它们放在 priv
中(如 priv/assets
),这样 Application.app_dir(:my_app, "priv")
就很容易找回它们。
然而,您的用例表明您可能仅在编译期间需要这些资产(以便在编译时生成这些房间的 Elixir 表示)。如果是这样,那么将它们放在任何你想要的地方,无论它们在哪里,都可以读取它们 - 使用像 File.cwd/1
和类似的函数来构建它们的路径。
我在使外部应用程序配置正常工作时遇到了一些问题。我目前正在编写一个基于文本的冒险游戏来学习 Elixir。我正在考虑将 "room" 定义存储为 JSON 在 "assets" 目录中。
看一下我的目录结构:
.
├── _build
│ ├── dev
│ └── test
├── assets
│ ├── rooms <---
│ └── items
├── config
├── deps
│ └── poison
├── lib
│ └── myzork
└── test
我试过Application.app_dir/1
和Application.app_dir/2
,但是当我使用iex -S mix
.
_build
下的那些参考文件
我如何让这个目录与我的代码一起发布?有没有长生不老药的方式来引用这些文件?还是我以完全错误的方式解决了这个问题?
如果你想在构建和发布应用程序时随身携带这些资产,那么我建议将它们放在 priv
中(如 priv/assets
),这样 Application.app_dir(:my_app, "priv")
就很容易找回它们。
然而,您的用例表明您可能仅在编译期间需要这些资产(以便在编译时生成这些房间的 Elixir 表示)。如果是这样,那么将它们放在任何你想要的地方,无论它们在哪里,都可以读取它们 - 使用像 File.cwd/1
和类似的函数来构建它们的路径。