包含多个包含前端逻辑的应用程序的伞项目.

Kat*_*ine 6 elixir phoenix-framework umbrella

我有2个具有共享功能/路由的应用程序.例如,在两个应用程序中都有日记,目标跟踪,睡眠跟踪等,它们以相同的方式工作.还有特定于每个应用程序的路由.在AppA中,用户可以跟踪他们的心情,在AppB中,用户可以查看他们的医生的笔记.

有没有办法让一个伞形项目包含在/apps通用应用程序,AppA和AppB中?每个应用程序都有自己的路由器/控制器/模板等.AppA和AppB都需要GenericApp作为依赖项.到目前为止,我只看到了一个包含前端逻辑(web)的应用程序的伞状项目,其他应用程序是包含在其中的库.如何在多个应用程序之间进行路由?我可以采取另一种方法吗?

我在搜索中找到了这个问题和答案,但这并不是我想要的.它似乎遵循一个前端应用程序的模式,包括在其他库中.

Mik*_*hot 4

是的,您当然可以将“通用”路线拆分为一个单独的伞式应用程序,并forwardAppA和到它AppB

使用Phoenix.Router.forward/4函数将请求转发AppAAppB共享代码。

例如,以下是如何将exq_ui合并到更大的应用程序中:

  pipeline :exq do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :put_secure_browser_headers
    plug ExqUi.RouterPlug, namespace: "exq"
  end

  scope "/exq", ExqUi do
    pipe_through :exq
    forward "/", RouterPlug.Router, :index
  end
Run Code Online (Sandbox Code Playgroud)