2011-09-10 44 views
5

我正在做從谷歌認證,並得到request too long錯誤,所以在一些研究,我添加了mongrel寶石。這固定了我的本地機器上的request too long錯誤。使用mongrel 1.2.0.pre2在Heroku軌道3應用程序錯誤

但是,現在當我推到Heroku的,我不斷得到下面

錯誤您已經激活了後臺程序1.1.0,但你的Gemfile需要 守護進程1.0.10。考慮使用bundle exec。 (寶石:: LoadError)

的Gemfile:

gem 'pg' 
gem 'compass', '>= 0.11.5' 
gem 'fancy-buttons' 
gem 'haml', '3.1' 
gem "nifty-generators", :group=>:development 
gem "bcrypt-ruby", :require => "bcrypt" 
gem "jquery-rails" 
gem "devise" 
gem "omniauth" 
gem 'oa-openid', :require => 'omniauth/openid' 
gem 'mongrel', '1.2.0.pre2' 

也許採取雜種出的Gemfile可能手頭解決問題,但隨後從谷歌身份驗證時,我將不得不再次「要求太長」的錯誤。

有沒有解決這個問題的方法?我應該使用不同的版本嗎?如果是的話......哪個?

雖然在部署之前heroku在其結尾處運行此操作,但我仍在本地運行bundle exec

回答

0

嘗試運行bundle update daemons

+0

在heroku方? – Omnipresent

+0

該命令將更新Gemfile.lock,當您推送時,Heroku將檢測到更改並重新安裝寶石。 – dexter

+0

仍然是一樣的錯誤。 '你已經啓動了守護進程1.1.0,但你的Gemfile需要守護進程1.0.10。考慮使用bundle exec。 (寶石:: LoadError)' – Omnipresent

0

advice我遷移Heroku的堆棧上的Ruby版本:heroku stack:migrate bamboo-ree-1.8.7。我必須'欺騙'git通過提交一個臨時文件來推動這個改變 - 毫無疑問,有一個更好的方法來做到這一點!

0

聽起來好像你的問題只在你的本地機器上,而不是在部署Heroku時正確?

Heroku使用Thin作爲網絡服務器,我也強烈建議在本地使用。

Mongrel從來沒有真的跳轉到Rails 3.x.而默認的Web服務器Webrick並不是真正的行業實力,如果它有「請求太長」等怪癖,我不會感到驚訝。

thin添加到您的Gemfile

此次推出的服務器如下:

rails s thin 

,你應該巡航。開始並處理多個連接時,Thin也更快。

0

我覺得3個問題在這裏:

  1. 你使用雜種狗,因爲@Wolfram提到這不是一個好主意。將Thin添加到您的Gem文件中,捆綁它,然後將其與「rails s thin」一起使用。

  2. 您可能在Gem版本中做了一個小修改,它說您已激活一個版本,然後激活另一個版本。不要忘記捆綁安裝,然後推它

  3. 也許最好不僅更新竹堆棧,而且使用Cedar與「heroku創建 - 堆雪松。