【发布时间】:2013-09-21 00:26:23
【问题描述】:
我的 Play 框架应用程序最近开发了一个相当讨厌的重定向循环,但只在一个特定页面(“关于”页面)上。没有其他页面有这个问题,“关于”页面的代码与所有其他页面完全相同,并且不会一直发生。
我最近唯一改变的是 (1) 更新了 Play 框架和 (2) 安装了一个过滤器,以便在调用 onRequest 时,如果 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 中执行此操作的示例吗?在遇到这些问题后,我想我宁愿在客户端这样做,即使它会稍微影响重定向时间。
【问题讨论】:
-
你能分享你的路由文件和相关控制器的代码吗?
-
更新为显示路由和控制器。谢谢。
-
在哪个控制器的方法中有重定向?
-
这确实很奇怪。如果我是你,我会删除过滤器(你做了),清理并重新编译。要使用 javascript 重定向,您可以使用
window.location = 'http://www.google.com'; -
谢谢。我删除了过滤器并屏蔽了上面提到的其他“关于”路由。到目前为止,还没有重定向循环。奇怪的是我不确定问题出在哪里,但从现在开始我只会在 javascript 中进行重定向。谢谢。
标签: playframework playframework-2.0 playframework-2.1