Есть ли способ настроить 2 интерфейса в приложении Phoenix?

В проекте у меня есть веб-приложение Phoenix, которое обслуживает собственный интерфейс (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 (и изменяя URL-адрес с помощью window.href)
  • при входе в приложение путем ввода localhost:4000/app/posts в адресной строке следующий файл не существует (что и ожидается, поскольку часть HTML, сгенерированная nuxt, находится в /posts/index.html

Я хочу найти способ решить эту проблему - изменив пути в конечной точке (при посещении localhost: 4000 / posts файл рендеринга с localhost: 4000 / posts / index.html), однако я не знаю, как мне это сделать. . Я думаю, правильный ли это подход, а если нет, то как мне действовать дальше?


person Hoggie    schedule 27.05.2021    source источник
comment
Если вы реструктурируете свое приложение так, чтобы оно было зонтичным, вы можете добавить второй интерфейс в качестве приложения. Просто перейдите в каталог apps и mix phx.new.web my_new_frontend   -  person Peaceful James    schedule 28.05.2021
comment
Правильно, я забыл об этом, думаю, это правильный подход   -  person Hoggie    schedule 28.05.2021


Ответы (1)


Вы пробовали следующую структуру для своего приложения Nuxt?

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

В противном случае мы могли бы поискать перенаправление, но мне любопытно, почему /index может здесь не генерируется. У вас есть все маршруты, когда вы yarn generate?

person kissu    schedule 27.05.2021
comment
Да, это работает - pages / posts / index.vue - это действительный статический путь, поэтому он может отображать - person Hoggie; 28.05.2021