2017-07-31 19 views
6

我有2个应用程序共享功能/路线。例如,在这两个应用程序中都有一个日志,目标跟踪,睡眠跟踪等,它们以相同的方式工作。也有特定于每个应用程序的路线。在AppA中,用户可以跟踪他们的心情,并且在AppB中,用户可以从他们的医生查看笔记。带有包含前端逻辑的多个应用程序的伞项目。

有没有一种方法可以在/apps中包含泛型应用程序,AppA和AppB?每个应用程序都有它自己的路由器/控制器/模板等.AppA和AppB将分别要求GenericApp作为依赖项。到目前为止,我只看到了一个包含前端逻辑(web)的应用程序的伞形项目,其他应用程序是包含在其中的库。这怎么能在跨多个应用程序的路由中工作?我可以采取另一种方法吗?

我在我的搜索中发现了this question & answer,但它并不完全是我正在寻找的。它似乎遵循包括其他图书馆在内的一个前端应用程序的模式。

回答

4

是的,您当然可以将'通用'路线划分为单独的伞形应用程序,forwardAppAAppB

使用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 
相关问题