6

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

有没有办法拥有一个包含在/apps通用应用程序、AppA 和 AppB 中的伞式项目?每个应用程序都有自己的路由器/控制器/模板等。AppA 和 AppB 都需要 GenericApp 作为依赖项。到目前为止,我只看到一个包含前端逻辑(Web)的应用程序的伞形项目,其他应用程序是包含在其中的库。这如何与跨多个应用程序的路由一起工作?我可以为此采取另一种方法吗?

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

4

1 回答 1

4

是的,您当然可以将“通用”路由拆分为一个单独的伞形应用程序,forward并从AppAAppB.

使用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
于 2017-07-31T12:03:10.610 回答