在Rails中出现“从应用程序接收到不完整的响应”
在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进行身份验证。
在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)