我正在开发一个Play Framework2.2应用程序,它同时提供JSON和单页应用程序。对于单页应用程序,我使用的是Backbone.js,我想支持HTML5历史api。
目前,Play通过一个index.html文件为单页应用程序提供服务,而单页应用程序中的所有路由都是通过基于哈希的路由完成的。以下是我所使用的路线:
GET /app/*file controllers.Assets.at(path="/public/app/src", file)
单页应用程序处理的示例URL是:
/app/index.html#/some/url
我希望能够将所有以/app/
开头的 URL路由到我的index.html文件,这样上面的URL将变成下面的URL,并且仍将由文件处理:
/app/some/url
我的想法是使用如下路线:
GET /app/*anything controllers.Assets.at(path="/public/app/src", file="index.html")
但是,Play不高兴我没有使用" anything“路由,因此我得到了以下编译错误:调用定义中缺少参数:anything。
在Play 2中是否有类似于上面路由到单个静态文件的“通配符”路由的方法?
发布于 2014-08-19 00:02:24
这是游戏中的一个限制,但一个很容易解决的问题。定义委托给资产控制器并接受它忽略的参数的操作:
def index(path: String) = controllers.Assets.at(path="/public/app/src", file="index.html")
那就把你的路线指向那里。
https://stackoverflow.com/questions/25373657
复制相似问题