我試圖使我的前端可以從Akka-HTTP(2.4.7)訪問。雖然所有程序都能正常運行,但我無法弄清楚如何啓用HTML5 PushState支持。我最好的嘗試是使用RejectionHandler和handleRejection指令。Akka-HTTP從拒絕中恢復(用於HTML5歷史api路由)
任何人有任何關於正確的建議嗎?
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")
}
}
}
我服務從根本上靜態內容path("/")
不過,我想,當找不到資源恢復。例如,我的應用程序使用HTML5 pushstate來確定要顯示的內容。我的理解是,任何不解析爲資產的路徑(如js,css,images等)都應爲HTML文件(index.html)提供服務。
按照ktoso的建議,我重構了代碼,然後按照文檔...查看我的工作版本沒有偷工減料的答案。
我不太明白你對代碼的期望。它與推動任何州的AFAICS沒有任何關係,並且正在使用拒絕,請閱讀文檔http://doc.akka.io/docs/akka/2.4.8/scala/http/routing-dsl /directives/execution-directives/handleRejections.html#handlerejections –