万能的stackflow告诉我这是rails常见的错误,核心问题是secret token没配置好。这是rails应用经常出现的问题,故本文对rails应用有普适性。
缺少了production所必须的secret token, 那就生成好了。在这里,先说下它是干嘛的,
This step generates a random key used by Rails to encode cookies storing session data thus preventing their tampering.
Generating a new secret token invalidates all existing sessions after restart.
得当当前应用会话(标签页)重启/关闭的,secret token是用来解析cookies来防止随便访问和随便篡改的,验证通过,我才能对服务器里的数据修改(增减,在这里对应的是project/issue的新建)
说说解决方案,
1. 服务器上定位到我们的rails应用redmine文件夹,rake secret生成密钥
2. redmine/config 文件夹下新建secret.yml,格式如下,
development: secret_key_base: test: secret_key_base: production: secret_key_base: ********************************** |
在production的secret_key_base下补充上我们的密钥。这里暂时忽略development和test,我们是应用,不是二次开发,哈哈
这里的复制粘贴不是那么友好,我们也可以这样来省事儿,
development: secret_key_base: test: secret_key_base: production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> |
保存退出,重启服务,我这么懒直接重启的服务器。
bug不见啦。
References,
1. http://stackoverflow.com/questions/29241053/incomplete-response-received-from-application-from-nginx-passenger
2. http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml
没有评论:
发表评论