Tsu*_*omu 4 elixir-mix elixir phoenix-framework
我编写了以下 mix.ex 以将我的 Phoenix 应用程序作为 tar 球发布,请参阅 Mix.Tasks.Release 文档的 \xe2\x80\x9cSteps\xe2\x80\x9d部分。
\ndefmodule MyApp.MixProject do\n use Mix.Project\n\n def project do\n [\n apps_path: "apps",\n apps: [:shared, :admin, :shop],\n version: "0.1.0",\n start_permanent: Mix.env() in [:qa, :prod],\n deps: deps(),\n releases: [\n my_app: [\n applications: [\n admin: :permanent,\n shop: :permanent\n ],\n steps: [:assemble, ©_extra_files/1, :tar]\n ]\n ],\n default_release: :my_app\n ]\n end\n\n defp copy_extra_files(release) do\n File.cp_r("apps/shared/priv/repo/seeds", release.path <> "/seeds")\n release\n end\n\n defp deps do\n []\n end\nend\n
Run Code Online (Sandbox Code Playgroud)\n当我运行 时MIX_ENV=qa mix release my_app
,它seeds
在 下创建了一个目录_build/qa/rel/my_app
,但是当我提取生成的 tar 球时,它不包含该seeds
目录。
我如何重写才能mix.exs
将此目录插入到 tar 球中?
Elixir 版本是 1.11.3。
\n注:同样的问题已发布在 Elixir 论坛上。
\n您不必手动复制任何内容,因为 elixir 会自动为您完成此操作,如果您查看my_app/lib/my_app-0.1.0/priv
您的 priv 文件夹中的所有文件。
现在,为了轻松访问这些资源而无需对路径进行硬编码,您可以使用priv_dir\1
:
:code.priv_dir(:my_app)
Run Code Online (Sandbox Code Playgroud)
这不仅适用于您的应用程序,例如,如果您想要phoenix静态资源,您可以在phoenix priv文件夹中找到它们。
归档时间: |
|
查看次数: |
1095 次 |
最近记录: |