Rails Slim + Rails 4 在生产环境下的一个小坑

oran · 2014年08月07日 · 最后由 oran 回复于 2014年08月07日 · 3408 次阅读

今天把用 Rails4 写的新项目往服务器上部署时,在浏览器上测试总是 500。

于是去服务器看日志,发现 Rails 抛出了错误:

Unexpected error while processing request: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`

一看config/secrets.yml,发现该文件是作为 erb 模板被解析的:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

一想自己用了 slim,于是将上述部分替换为如下,服务正常运行。

production:
  secret_key_base: == ENV["SECRET_KEY_BASE"]
  1. 不要遇到问题就说工具坑,先考虑是自己的问题。
  2. 确定正常了吗?进 production console 看看 Rails.application.secrets.secret_key_base 值是什么。

#1 楼 @Rei 把 yaml 里面的语法从 erb 换成 slim 就正常了,终端正常输出 secret_key_base

#2 楼 @oran 我做了个试验,输出 "== ENV[\"SECRET_KEY_BASE\"]",而 erb 格式是正常的。

#3 楼 @Rei 但是我这里是 slim 格式正常,Rails 4.1.4 slim 2.0.3

5 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号