> http://production-app.com(从http://production-app.heroku.com起映射)
> http://development-app.heroku.com
在production-app.com上,我有几个子域使用Heroku自定义域插件与Zerigo(不是通配符域插件):
> http://blog.production-app.com
> http://api.production-app.com
在development-app.heroku.com上,我也有这些自定义子域,但由于我没有自定义域,我只使用wildcard addon.
在我的routes.rb中,使用Subdomain-Fu,我在本地和两个Heroku应用程序上都有子域名.
我现在面临的问题是,如何让会话在所有子域之间保持同步?
我试过将它添加到production.rb:
ActionController::CgiRequest::DEFAulT_SESSION_OPTIONS.update(:session_domain => '.production-app.com')
甚至组合这个:
begin config.action_controller.session[:domain] = '.production-app.com' config.action_controller.session[:session_domain] = '.production-app.com'rescue config.action_controller.session = {:domain => '.production-app.com',:session_domain => ".production-app.com"}end
……对于开发站点,这两个:
ActionController::CgiRequest::DEFAulT_SESSION_OPTIONS.update(:session_domain => '.heroku.com')# orActionController::CgiRequest::DEFAulT_SESSION_OPTIONS.update(:session_domain => '.development-app.heroku.com')
这些都不会保持子域之间的会话.如果我有自定义域名并且刚刚运行Heroku子域名,我该如何使用?
谢谢!
解决方法 在config / initializers / session_store.rb中,告诉rails在所有域中设置@R_404_5556@:Rails.application.config.session_store :@R_404_5556@_store,:key => '_yourapp_session',:domain=>:all
与此SO question相同
如果您希望在“development-app.heroku.com”和“production-app.com”之间保持会话,除非这些代码库是相同的,否则无法完成.如果它们是相同的代码库,则使用应用程序控制器上的before_filter重定向到production-app.com
总结以上是内存溢出为你收集整理的ruby-on-rails – 子域会话在Heroku上的Rails 2.3和Rails 3中不工作,有/没有自定义域?全部内容,希望文章能够帮你解决ruby-on-rails – 子域会话在Heroku上的Rails 2.3和Rails 3中不工作,有/没有自定义域?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)