一个伞中的两个凤凰应用程序

时间:2017-09-28 22:44:21

标签: elixir phoenix-framework

所以我有一个只有json的大凤凰项目。 Brunch等人甚至没有安装。现在,我们正在创建需要SEO友好的面向公众的页面,因此我们将使用标准浏览器管道并呈现html模板等。这个面向公众的应用程序可能会部署到自己的实例和独立扩展。我想分享我的核心架构/模型代码和一些工具。我该如何设置?雨伞?单独的项目? (虽然仍然会在同一个回购中)

我已收到建议,从一个伞形应用程序开始,但我有两个问题:

1)如果我为不同的端口配置了它们,那么从根运行mix phx.server会运行它们吗?

2)我应该将共享代码移动到自己的应用程序(所以我有3个,共享应用程序,json应用程序,HTML应用程序)并且我将获得自动重新加载(无需杀死/重新启动服务器)更改共享应用程序中的代码?

2 个答案:

答案 0 :(得分:2)

您可以在一个伞形项目中拥有任意数量的网络应用程序(Phoenix)。唯一的细微差别是为每个端口设置不同的端口。但是,如果Web应用程序是要相互调用的API,请确保您的API外观代码位于共享应用程序中,因为您不希望将web1作为web2的依赖项包含在内在构建版本时,循环引用的可能性以及其他问题。

此外,任何共享代码都应该存放在一个或多个其他应用程序中。

答案 1 :(得分:2)

我一直在研究类似的应用程序。我的主伞中有4个应用程序

  • DB Elixi应用程序,当我连接到Cassandra& amp; Neo4j的
  • Web * Phoenix App
  • Api * Phoenix App
  • 任务Elixir应用程序与一些生成服务器执行后台任务

从应用程序的根目录我运行mix phx.server,启动所有凤凰应用程序并启动其他elixir应用程序。如果要测试应用程序的单个部分,只需cd进入apps / {app_name}文件夹并运行该范围内的命令。