我在使用外部应用程序配置时遇到了一些问题。我正在写一个基于文本的冒险游戏来学习Elixir。我正在考虑将“room”定义作为JSON存储在“assets”目录中。
以下是我的目录结构:
.
├── _build
│ ├── dev
│ └── test
├── assets
│ ├── rooms <---
│ └── items
├── config
├── deps
│ └── poison
├── lib
│ └── myzork
└── test
我试过Application.app_dir/1
&amp; Application.app_dir/2
,但是当我使用_build
时,iex -S mix
下的参考文件。
如何将此目录与我的代码一起提供?是否有一种灵丹妙药来引用这些文件?或者我是以完全错误的方式解决这个问题?
答案 0 :(得分:2)
如果您想在构建和发布应用程序时随身携带这些资产,我建议将它们放在g xs n = f $ drop n xs
f [] = ""
f ("":xs) = ""
f (x:xs) = x ++ f xs
内(例如priv
),以便priv/assets
可以轻松检索它们
但是,您的用例表明您可能只在编译期间需要这些资产(为了在编译时生成这些房间的Elixir表示)。如果是这样,那么把它们放在你想要的任何地方,只要它们在任何地方阅读它们 - 使用像Application.app_dir(:my_app, "priv")
这样的函数来构建它们的路径。