Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails &引用;从应用程序收到的响应不完整;。无法获取密钥库以在Cap部署的Rails应用程序上工作。_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails &引用;从应用程序收到的响应不完整;。无法获取密钥库以在Cap部署的Rails应用程序上工作。

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”时,所有这些变量都是可见的 我已

我有一个Rails(4.2.1)应用程序,我正在通过Capistrano部署到VPS。我已经在服务器上(在/etc/environment文件中)设置了环境变量SECRET\u KEY\u BASE。当我在服务器上运行“env”时,我可以查看SECRET\u KEY\u BASE记录

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文件。