Ruby on rails &引用;从应用程序收到的响应不完整;。无法获取密钥库以在Cap部署的Rails应用程序上工作。
我有一个Rails(4.2.1)应用程序,我正在通过Capistrano部署到VPS。我已经在服务器上(在/etc/environment文件中)设置了环境变量SECRET\u KEY\u BASE。当我在服务器上运行“env”时,我可以查看SECRET\u KEY\u BASE记录Ruby on rails &引用;从应用程序收到的响应不完整;。无法获取密钥库以在Cap部署的Rails应用程序上工作。,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个Rails(4.2.1)应用程序,我正在通过Capistrano部署到VPS。我已经在服务器上(在/etc/environment文件中)设置了环境变量SECRET\u KEY\u BASE。当我在服务器上运行“env”时,我可以查看SECRET\u KEY\u BASE记录 SECRET_KEY_BASE=fa091be2d168da5f943a0a83f9b2... 我在这个文件中还保存了其他变量,如数据库用户名、密码等。当我在服务器上运行“env”时,所有这些变量都是可见的 我已
SECRET_KEY_BASE=fa091be2d168da5f943a0a83f9b2...
我在这个文件中还保存了其他变量,如数据库用户名、密码等。当我在服务器上运行“env”时,所有这些变量都是可见的
我已将我的secrets.yml文件设置为默认设置:
production:
secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>
生产:
机密密钥库:
同样,我在别处使用环境变量。。。例如my database.yml文件:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: <%= ENV['PSQL_DATABASE_USERNAME'] %>
password: <%= ENV['PSQL_DATABASE_PASSWORD'] %>
default:&default
适配器:postgresql
编码:unicode
游泳池:5
用户名:
密码:
当我部署应用程序时,我会收到一条消息,说明“从应用程序收到的响应不完整”。根据SO和其他网站的评论,我尝试在盒子上运行“rake secret”,然后重新启动应用程序。这样做解决了我的问题。奇怪的是,我的所有数据库连接和对我的ENV变量的所有其他引用都在工作,但出于某种原因,secret_key_base不会接受我的ENV变量。一旦我再次部署cap,我的密钥库就被清除了,我不得不手动SSH服务器并再次“rake secret”
有人能帮我找出我在这里遗漏了什么吗?我绞尽脑汁浏览网页,似乎找不到解决办法 像这样试试看
production:
secret_key_base: Rails.application.secrets.SECRET_KEY_BASE
像这样试试
production:
secret_key_base: Rails.application.secrets.SECRET_KEY_BASE
你能解决这个问题吗。我遇到的正是这件事!对不起,我有一阵子没登录了。希望你现在已经有了一个解决方案,但是如果你没有。。。我最后做的是将config/secrets.yml添加到capistrano deploy上的链接_文件中。set:linked_files,fetch(:linked_files,[])。push('config/database.yml','config/secrets.yml')。然后我直接在服务器上创建了config/secrets.yml文件。您是否能够解决这个问题。我遇到的正是这件事!对不起,我有一阵子没登录了。希望你现在已经有了一个解决方案,但是如果你没有。。。我最后做的是将config/secrets.yml添加到capistrano deploy上的链接_文件中。set:linked_files,fetch(:linked_files,[])。push('config/database.yml','config/secrets.yml')。然后我直接在服务器上创建了config/secrets.yml文件。您是否能够解决这个问题。我遇到的正是这件事!对不起,我有一阵子没登录了。希望你现在已经有了一个解决方案,但是如果你没有。。。我最后做的是将config/secrets.yml添加到capistrano deploy上的链接_文件中。set:linked_files,fetch(:linked_files,[])。push('config/database.yml','config/secrets.yml')。然后我直接在服务器上创建了config/secrets.yml文件。