Play Framework 2.1.2重定向循环

时间:2013-09-17 00:55:36

标签: playframework playframework-2.0 playframework-2.1

我的Play框架应用程序最近开发了一个相当讨厌的重定向循环,但只在一个特定的页面上(“about”页面)。没有其他页面存在此问题,“关于”页面的代码与所有其他页面的代码完全相同,并且它不会一直发生。

我最近唯一改变的是(1)更新了Play框架和(2)安装了一个过滤器,以便在调用onRequest时,如果URL是旧站点URL,它将重定向到新的URL 。我删除了这个过滤器,但在一段时间后仍然存在重定向循环。

此重定向循环并非始终发生,而且似乎只在网站生效几天后才会发生。重新启动Play服务器至少会修复重定向循环。

路由文件条目:

GET /about controllers.Application.about()

现在,我在路线中还有其他几个“约”条目,如下所示:

GET         /about/clients                               controllers.About.clients()
GET         /about/history                               controllers.About.history()
GET         /about/leadership                            controllers.About.leadership()
GET         /about/philosophy                            controllers.About.philosophy()

控制器方法:

@Cached(key="aboutPage", duration = CACHE_DURATION)
public static Result about(){
    return ok(about.render("About"));
}

任何人都知道为什么会发生这种情况或任何经历过类似情况的人?

另外,有人可以提供一个如何在javascript中执行此操作的示例吗?在遇到这些问题之后,我想我宁愿在客户端这样做,即使它会稍微影响重定向时间。

1 个答案:

答案 0 :(得分:0)

好的,所以删除上面引用的过滤器确实很有效。为了安全起见,我也注意到了另一个"关于"路线。似乎重定向过滤器运行良好,但当routes.conf文件中存在多个级别的资源时,它可能会导致冲突。例如," / about / us / home"等等

不确定这是否是Play中的错误,但是,目前,在Javascript中进行重定向可以解决我的问题。