2016-07-01 2 views
3

Я пытаюсь выполнить угловое2 (rc3) приложение из akka-http (scala rest framework). Это не работает из-за маршрутизации. По просьбе спрей пытается найти /my/endpoint/declared/in/angular в качестве обычного ресурса. Как я должен это делать?akka-http + angular2 routing

С помощью простых статических веб-страниц, без маршрутизации (динамические ссылки) это довольно легко:

path("app") { 
    getFromResource("my-app/index.html") 
} ~ getFromResourceDirectory("my-app") 

Я пытался служить index.html каждый раз, когда запрашиваемый ресурс не найден:

path("app") { 
    getFromResource("my-app/index.html") 
} ~ getFromResourceDirectory("my-app") ~ getFromResource("my-app/index.html") 

но он ломает относительные ссылки (когда я прошу /app/my/endpoint я index.html, который пытается загрузить styles.css из /app/my/endpoint/styles.css вместо /app/styles.css)

Я хотел бы знать, как это делается на других http-серверах.

ответ

1

Я решил проблему. Это может быть не оптимальным, но работает очень хорошо.

В распылительной конфигурации вы положили:

path("ui") { //the same prefix must be set as base href in index.html 
    getFromResource("abtest-ui/index.html") 
} ~ pathPrefix("ui") { 
getFromResourceDirectory("abtest-ui") ~ 
    getFromResource("abtest-ui/index.html") 
} 

И в index.html:

<base href="/ui/"> 

Резюмируя:

  • запрос /ui/ служит index.html
  • запрос /ui/someResourceFile.css служит для этого r esource
  • запрос /ui/AnythingThat/IsNotA/ResourceFile обслуживает index.html и угловые ручные ручки
Смежные вопросы