我有凤凰的应用程序(我--api标志创造了它),有处理,我存储在请求需要一些额外的数据priv/data/filters.csv
。
所以,它工作在精细dev
模式,我可以读取该文件,如: File.stream!("priv/data/filters.csv")
但一旦应用程序使用提供mix edeliver update
该文件无法访问了。
我可以看到在build目录此文件夹,但应用交付后,有没有这样的文件夹priv
。 我不知道为什么它不会复制到文件夹传送。
我做错了吗? 我是否需要复制这些文件传递过程之后? 我在哪里可以存储我的文件,我在PROD模式下使用?
您应该使用:code.priv_dir/1
获得绝对路径priv
您在运行的应用程序的目录。 这将通过如酒厂创建二郎发布工作:
File.stream!(Path.join(:code.priv_dir(:my_app), "data/filters.csv"))
对我来说,做后MIX_ENV=prod mix release
,文件priv/foo
被复制到_build/prod/lib/my_app/priv/foo
。
我有一个类似的问题,并设法用它来解决Application.app_dir(my_app, "priv")
您应该检查在配置lib/YOUR_APP/endpoint.ex
。 默认情况下Plug.Static
白色列出了服务的文件。 尝试在加入你的文件only: ~w(...)
名单。