您好我想从控制器提供我的index.html页面。而且我不希望它成为一个视图,我希望它是一个纯粹的html文件,我不需要播放模板引擎。
请考虑以下事项:
路线:GET / controllers.MainApp.index
路线实施是:
def index = Action { implicit request => if (AuthenticatedAction.isAuthenticated) { Ok(controllers.Assets.at(path="/public/", file="index.html")) } else Redirect(controllers.routes.Authentication.login()) }
我收到以下错误:
Cannot write an instance of play.api.mvc.Action[play.api.mvc.AnyContent] to HTTP response. Try to define a Writeable[play.api.mvc.Action[play.api.mvc.AnyContent]]
有没有办法像这样提供HTML页面?
可能的解决方案是做类似的事情:
路线:GET /*file controllers.Assets.versioned(path="/public", file: Asset)
然后从控制器返回:
Redirect("/index.html")
这给了我一个我不想要的网址路径:
http://localhost:9000/index.html#/
由于
答案 0 :(得分:1)
我认为解决方案是返回
controllers.Assets.at(path="/public/", file="index.html")
而不是
Ok(controllers.Assets.at(path="/public/", file="index.html"))
at方法已经返回一个结果,所以你不需要在这里使用Ok。