angularjs - AngularJS 的 Play2 重定向

标签 angularjs playframework playframework-2.3

我正在尝试让 Play2 能够与 AngularJS 很好地配合。 Play2 将不了解 AngularJS,因为我使用 Yeoman 进行前端开发。

我唯一想要了解的部分是重写 url,以防用户在 HTML5MODE 中刷新。我的路线文件的最后一行有

GET   /*path          controllers.Default.redirect(to = s"#!/$path")

但是,这不起作用。首先,在路由文件中,似乎不允许使用字符串插值,因为 $path 无法解析。此外,在字符串中使用#也会出错,因为#是注释的开始。

我可以为此路线创建一个 Controller 操作,只需附加“#!”到这样的路径:

GET   /*path          controllers.Application.redirect(path: String)

/* in Application controller */
def redirect(path: String) = Action {
  Redirect(s"#!/$path")
}

但我更喜欢在路由文件中保持非常清晰,就像在 Ruby on Rails 中一样,我可以这样做

get '/*path' => redirect("/#!/%{path}")

您能与我分享您的技巧和最佳实践吗?

谢谢

最佳答案

您最好在 Apache 或 Nginx 中进行此重写 - Web 服务器的 URL 重写功能比 Play 的强大得多。请参阅the Play documentation了解如何在 Play 前面设置 Web 服务器,然后查看 Web 服务器的文档以了解如何设置您想要的重写。

关于angularjs - AngularJS 的 Play2 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279401/

相关文章:

javascript - 如何在 AngularJS 中发送 HTTP 请求 onbeforeunload?

angularjs - angular js中的 Controller 和指令有什么区别?

java.lang.ClassNotFoundException 每次我更改代码中的某些内容时(Neo4j OGM + Play!)

java - Play 框架——保证本地线程在请求​​结束或下一个请求开始时被清除

playframework-2.3 - 如何缩小 sbt-concat 生成的 js

java - 如何使用带 SSL 的 Play WS?

javascript - 如何为选择选项分配默认值

游戏框架 : Template equivalent of Java's continue & break?

scala - 在 Play Framework 中将 JsObject 追加/添加到 JsArray

javascript - 尝试运行应用程序模块 angularjs 时没有错误的空白页面