铬的以下问题...:
我在服务器上运行 Grails 1.3.7 应用程序。我注意到,当我从 Chrome 请求静态内容(例如非动态 html 文件)时,Chrome 会创建两个 JSESSIONID-Cookie。登录窗口出现时的第一个,成功登录后的第二个。如果我想刷新页面,或者请求其他资源,我必须重新登录。(我认为是因为 Tomcat 不理解这两个 cookie)
我已经用 FF 试过了,但 FF 只是创建了一个 Cookie 并且它工作得很好。另外,我已经在本地运行了该应用程序,它甚至可以完美地与 chrome 一起使用。所以,tomcat 的某些东西一定是错的。
环境:
- Grails-Application 1.3.7(带有 Spring-Security-Core 1.2.4)
- Apache Tomcat 7(在 Windows Server 2008 上)
我的 httpd.conf:
ProxyPass /manager http://myUrl:8080/manager
ProxyPass /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPassReverse /manager http://myUrl:8080/manager
ProxyPassReverse /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPass / http://myUrl:8080/myGrailsApp/frontend
ProxyPassReverse / http://myUrl:8080/myGrailsApp/frontend
提前致谢。
更新1:
我重新构建,重新部署了应用程序并再次重新启动了 tomcat。
现在我注意到:Chrome 不再生成两个 cookie。但错误是一样的。每次我刷新或请求某些内容时,JSESSIONID 都会更改,我必须重新登录。
在 tomcat-server 上短暂观察会显示大量活动会话 - 来自 chrome 的那些......
更新 2:
我在服务器上本地尝试过(使用chrome):
- localhost/myApp/frontend => Apache => 失败
- localhost:8080/myApp/frontend => Tomcat => OK
似乎Apache是问题(?)。
解决方案:
我明白了 :) Grails *.gsp-Templates 总是在每个请求上请求“favicon.ico”。错误出现在静态内容(如 html 文件)上的原因是我们从 Grails-Application 重定向到这些资源。
所以我把 favicon.ico 放在了正确的位置,现在它可以工作了:)
这个错误只涉及谷歌浏览器,在 FF 和 IE 中它没有任何问题。