【问题标题】:Is there a way to setup 2 frontends in phoenix app?有没有办法在凤凰应用程序中设置 2 个前端?
【发布时间】:2021-05-27 22:51:27
【问题描述】:

在项目中,我有 phoenix web 应用程序,它服务于自己的前端(webpack 5,服务于“/”)

  plug Plug.Static,
    at: "/",
    from: :myapp_web,
    gzip: false,
    only: ~w(css fonts images js robots.txt favicon.ico)

我想添加另一个前端(将在 /app 上提供服务(这个前端使用我构建的 API)。我决定尝试添加另一个前端作为静态应用程序,所以我配置 nuxt 来构建静态文件:

export default {
  ssr: false,
  target: 'static'

nuxt.config.js 并正确配置端点:

 plug Plug.Static,
    at: "/app",
    from: "myapp-app/dist",
    gzip: false

这允许工作(但只是部分):

  • 你可以打开localhost:4000/app/index.html进入应用,继续使用应用(因为JS正在加载nuxt生成的部分视图(并通过window.href更改url)
  • 在地址栏输入localhost:4000/app/posts进入应用时后面的文件不存在(这是意料之中的,因为nuxt生成的html部分位于/posts/index.html

我想找到一种方法来解决这个问题 - 通过更改 Endpoint 中的路径(从 localhost:4000/posts/index.html 访问 localhost:4000/posts 渲染文件时),但是,我不知道应该怎么做我这样做。我在想这是否是正确的方法,如果不是,我应该如何进行?

【问题讨论】:

  • 如果您将应用程序重组为“伞形”应用程序,那么您可以将第二个前端添加为应用程序。只需转到apps 目录和mix phx.new.web my_new_frontend
  • 对了,我忘记了,我认为这是正确的做法

标签: vue.js elixir nuxt.js phoenix


【解决方案1】:

您是否为 Nuxt 应用尝试过以下结构?

pages/
-- posts/
---- index.vue

否则,我们可以寻找redirect,但我很好奇为什么这里可能不会生成/index。你yarn generate时有你所有的路线吗?

【讨论】:

  • 是的,这行得通 - pages/posts/index.vue 是有效的静态路径,因此它可以呈现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 2022-01-24
  • 2018-05-28
  • 1970-01-01
  • 2022-10-07
  • 2018-04-04
  • 2018-07-02
相关资源
最近更新 更多