Ich versuche, mein Front-End von Akka-HTTP (2.4.7) zugänglich zu machen. Obwohl alles gut mit regulären Routen funktioniert, kann ich nicht herausfinden, wie HTML5 PushState-Unterstützung aktiviert wird. Mein bester Versuch war, die RejectionHandler- und handleRejection-Direktive zu verwenden.Akka-HTTP-Wiederherstellung von der Zurückweisung (für HTML5-Verlauf api-Routing)
Wer hat irgendwelche Vorschläge, um es richtig zu machen?
def router = pathPrefix("") {
get {
pathEndOrSingleSlash {
getFromDirectory("app/index.html")
} ~ handleRejections(RejectionHandler.newBuilder().handleNotFound {
println("REJECTION!!!!!!!!")
// should be something else?
getFromDirectory("app/index.html")
}.result()) {
getFromDirectory("app")
}
}
}
ich von der Wurzel statische Inhalte jedoch diene path("/")
, möchte ich erholen, wenn eine Ressource nicht gefunden wird. Zum Beispiel verwendet meine Anwendung den HTML5-Druckstatus, um den anzuzeigenden Inhalt zu bestimmen. Nach meinem Verständnis sollte jede Route, die nicht zu einem Asset aufgelöst wird (wie js, css, images, ect), der HTML-Datei (index.html) dienen.
Dem Rat von Ktoso folgend, habe ich den Code überarbeitet und der Dokumentation gefolgt ... sehe meine Antwort für die Arbeitsversion, ohne Abstriche zu machen.
Ich verstehe nicht ganz, was Sie von dem Code erwarten. Es hat nichts damit zu tun, einen Zustand AFAICS zu drücken, und es verwendet Abweisungen falsch, lesen Sie bitte in der Dokumentation http://doc.akka.io/docs/akka/2.4.8/scala/http/routing-dsl /directives/execution-directives/handleRejections.html#handlerejections –