elixir - 如何配置 plug 以将另一个目录设置为 public,而不是 priv/static/?

标签 elixir phoenix-framework

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

最佳答案

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

长长的答案是:在生产环境中,Elixir 应用程序关心两个目录:1. ebin(放置编译代码的地方)和 2.priv(在生产环境中运行软件所需的辅助文件,如静态文件)。如果您依赖不在任何这些目录中的文件,则在生产或构建版本中运行时,事情可能会中断。因此,我建议您将 aurelia 的内容移到 priv/static 中,或者使用一个工具在一天结束时将 aurelia 工件编译为 priv/static。

如果你不想这样做,“我已经警告过你”的替代方法在这里:http://hexdocs.pm/plug/Plug.Static.html .您可以设置 from: "."配置时Plug.Static在您的 Phoenix 端点 lib/my_app/endpoint.ex .也可以多插一个Plug.Static如果你想。

关于elixir - 如何配置 plug 以将另一个目录设置为 public,而不是 priv/static/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086700/

相关文章:

elixir - 的作用是什么?或者 ! Elixir 函数结束时做什么?

elixir - 能够创建 "generic"插件吗?

elixir - 如何在一个Supervisor下初始化2个DynamicSupervisor

docker - 如何使用elixir phoenix版本和指南中的示例MyApp.Release.rollback在Docker容器中回滚数据库

validation - 使用 Ecto,验证具有 2 个不同相关模型的变更集是否具有相同的父模型

elixir - 返回列表给出(Poison.EncodeError)无法编码值

elixir - 在 Phoenix/Elixir 中测试渲染

npm - Phoenix 框架 - 在子目录中执行 NPM 脚本

elixir - 为什么 Phoenix LiveView 函数 `push_event` 未定义?

websocket - 无法连接到 Phoenix 的网络套接字 : Ignoring unmatched topic. 但我认为它匹配