我目前正在開發一個支持多種語言的項目。爲了使用戶更友好,我正在嘗試重定向與其語言環境相對應的用戶子域(或他們的首選語言)。Grails項目中不同子域的會話和會話ID相同 - 我該怎麼做?
也就是說,我的項目的URL是mydomain.com,我和子域en.mydomain.com,es.mydomain.com,de.mydomain.com,fr.mydomain工作。 com ...你明白了。現在,所有子域都由相同的grails應用程序提供服務。
會發生什麼事是,我的Grails項目能在不同的會議(由會話ID來看)爲每一個子域,因此,信息丟失,當語言之間的用戶切換。我沒有忘記這一點。 :(
我如何能明確設置會話標識符?我想這是僅基於mydomain.com。
我得到了暗示的Apache Tomcat提供類似
<Context sessionCookiePath="/" sessionCookieDomain=".mydomain.com">
,但這並不有助於開發環境等
任何提示?您是否嘗試將會話信息存儲在數據庫中?有時用於負載平衡的目的,這可能也有幫助嗎? !
幫助非常感謝(一如既往)!乾杯!
其實選項2是我想探索的。這就是爲什麼我建議_sessionCookieDomain_作爲可能的解決方案。然而,我不知道,我怎麼能爲grails devel(不在tomcat中運行)做到這一點? – fluxon 2012-03-28 09:40:30
非常感謝您回答btw。 – fluxon 2012-03-28 09:40:45
餅乾相當簡單,你不需要apache或什麼不規則。瀏覽器處理cookie處理,JavaScript可以在客戶端處理您的Cookie。在服務器端你有你的標籤:http://grails.org/doc/1.3.x/ref/Tags/cookie.html,甚至有一個cookie插件:)。你可以使用: request.cookies.each {println「$ {it.name} == $ {it.value}} ------並設置---- def c = new Cookie(someName,someValue ) c.maxAge = someNumberInSeconds response.addCookie(c) – dbrin 2012-03-28 17:18:52