如何配置插件以将另一个目录设置为 public 而不是 priv/static/?

How do I configure plug to set another directory as public other than priv/static/?

我目前正在使用 aurelia 作为我的 phoenix 应用程序的前端框架。除了 priv/static 文件夹之外,我还想将项目根目录中的 jspm_packages 文件夹指定为静态目录。有没有办法配置插件来做到这一点?

简短的回答是:你不应该。

长答案是:在生产中,Elixir 应用程序关心两个目录:1.ebin(这是你放置编译代码的地方)和 2.priv(你需要 运行 你的软件的辅助文件在生产中,如静态文件)。如果您依赖的文件不在任何这些目录中,那么在生产或构建版本中 运行 时可能会出现问题。所以我建议您将 aurelia 的东西移到 priv/static 中,或者有一个工具可以在一天结束时将 aurelia 工件编译为 priv/static。

如果您不想这样做,"I have warned you" 替代方案在这里:http://hexdocs.pm/plug/Plug.Static.html。您可以在 lib/my_app/endpoint.ex 的 Phoenix 端点配置 Plug.Static 时设置 from: "."。如果需要,您也可以插入多个 Plug.Static