Kat*_*ine 6 elixir phoenix-framework umbrella
我有2个具有共享功能/路由的应用程序.例如,在两个应用程序中都有日记,目标跟踪,睡眠跟踪等,它们以相同的方式工作.还有特定于每个应用程序的路由.在AppA中,用户可以跟踪他们的心情,在AppB中,用户可以查看他们的医生的笔记.
有没有办法让一个伞形项目包含在/apps
通用应用程序,AppA和AppB中?每个应用程序都有自己的路由器/控制器/模板等.AppA和AppB都需要GenericApp作为依赖项.到目前为止,我只看到了一个包含前端逻辑(web)的应用程序的伞状项目,其他应用程序是包含在其中的库.如何在多个应用程序之间进行路由?我可以采取另一种方法吗?
我在搜索中找到了这个问题和答案,但这并不是我想要的.它似乎遵循一个前端应用程序的模式,包括在其他库中.
是的,您当然可以将“通用”路线拆分为一个单独的伞式应用程序,并forward
从AppA
和到它AppB
。
使用Phoenix.Router.forward/4函数将请求转发AppA
到AppB
共享代码。
例如,以下是如何将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)