仅在生产

时间:2015-08-24 14:01:43

标签: ruby-on-rails ruby session cookies ruby-on-rails-4.2

我现在已经挣扎了一段时间,但却无法弄清楚为什么这不起作用。我使用Firefox / Firebug来查看在开发模式下创建的会话cookie,但是当我在Production中本地运行时,不会创建会话cookie。当然,当CSRF令牌不在会话cookie中并且抛出异常时,这会引起各种各样的悲痛。

显而易见的地方是在production.rb vs development.rb,因为所有其余的代码是相同的但是我在那里看不到任何错误,我将这两个文件与新创建的(测试)进行了比较rails app。

配置信息:

  • session_store => cookie_store(rails default)
  • protect_from_forgery with :: exception(application_controller)

任何想法都表示赞赏。谢谢,艺术

2 个答案:

答案 0 :(得分:0)

当我最近遇到相同的情况时,结果是错误配置的会话cookie域出现了问题。

查看应用程序随响应发送的HTTP标头。我想会尽可能地为会话cookie发送Set-Cookie标头,但浏览器拒绝保存cookie,因为标头中指定的域不会match您的应用程序的实际生产域跑着。

要解决此问题,请修改会话存储配置中的域设置。

答案 1 :(得分:0)

不,这些都不是问题所在。它使用的是Rack :: Cached。我没有时间追踪它的原因,只是从我的构建中删除它可以解决问题,而无需做任何其他事情。希望我有时间进一步追踪这一点,以帮助你们。