【发布时间】: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