2017-07-31 62 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 
相關問題