在Rails中出现“从应用程序接收到不完整的响应”

24 浏览
0 Comments

在Rails中出现“从应用程序接收到不完整的响应”

有人可以帮忙吗?我的堆栈是ubuntu-server 14.04,使用nginx/passenger和ruby 2.2.2。我无法让我的项目在生产环境中运行。在开发环境下一切正常运行。

secrets.yml

production:

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

secret_token: <%= ENV["SECRET_KEY_BASE"] %>

server

server { 
    listen 80; 
    server_name logvs.local; 
    passenger_enabled on; 
    passenger_app_env development;
    root /var/www/logvs/public; 
}

error.log

App 2532 stderr: [ 2015-06-07 22:56:01.4724 2610/0x000000014d6b00(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`) (process 2610, thread 0x000000014d6b00(Worker 1)):
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:534:in `validate_secret_key_config!'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:246:in `env_config'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/engine.rb:514:in `call'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:164:in `call'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'
[ 2015-06-07 22:56:01.4731 2508/7f6775575700 age/Hel/Req/Utils.cpp:95 ]: [Client 1-1] 发送502响应:应用程序没有发送完整的响应

编辑:我忘记说我正在使用devise进行身份验证。

0
0 Comments

问题的出现原因是数据库配置有问题,解决方法是确保数据库配置正确并重新启动数据库。

在我的生产服务器上,我遇到了这个问题,当时我通过设置secret_key_base来解决了问题。然而,现在在我的开发环境中,这个问题又出现了。我在开发环境中使用NGINX,但我还单独安装了MAMP,所以Rails应用程序使用的是MAMP安装的MySQL,看起来MySQL正在运行。然而,它似乎有一个bug,我重新启动了MySQL,然后问题就解决了。所以可以尝试一下这个方法:确保MySQL(或者你使用的任何数据库)的配置正确,并且正在运行,如果正在运行,尝试重新启动它。

0
0 Comments

在Rails中出现"Incomplete response received from application"问题的原因是缺少`secret_token`和`secret_key_base`。解决方法是手动在生产服务器的.profile(或类似的)文件中输入环境变量。

在这里找到了一个很好的回答:How to solve error "Missing `secret_key_base` for 'production' environment" (Rails 4.1)

0