ROR部署到Heroku出现Application Error和code=H10 desc="App crashed“问题

来源:互联网 发布:mysql要学多久 编辑:程序博客网 时间:2024/06/11 05:00

1、问题发现之前的准备

在读《Learn Python In Hard Way》的时候,发现作者谈到一个很有趣的事情,在做一些有趣的事情之前做的无聊的事情叫做yak shaving,牦牛剪毛。类似学习一门语言或技术前的安装,配置等等东西。


以前听一位师兄说如果你搞web的话,可以去学习下ROR。查了下发现是Ruby on rails,作为它的作者——

David Heinemeier Hansson也是一个相当神奇的程序员。然后这次本来想系统性学习下Ruby,但是发现细节好多,所以想换另外一种学习方式,直接上手ROR。

关于这种学习方式,我又去搜了一些经验回答。有一位前辈总结的很好。过了3本书。
1、《HeadFirst HTML AND CSS》
2、《The linux command line》
3、《Pro git》

从基本的前端,linux的整体和基本的shell,以及git工具。个人根据个人知识略过第一本,挑不懂的知识点看,后两本看得比较仔细。我发现会用git,并不知道快照原来是如此一回事,整个git的控制流程是与svn如何的不同。第一次发现linux里面双击可以复制,鼠标中键可以直接粘贴。


2、发现问题

后面再看的《Ruby on Rails tutorial》,第一章就是yak shaving。
自己配置ROR环境,然后正式部署到Heroku。然后问题就来了。Application Error和code=H10 desc="App crashed“问题。


Heroku本身可以看错误,点击view logs

at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

3、问题解决

根据这个并不能看出问题所在,继续查。http://stackoverflow.com/questions/13496827/heroku-deployment-error-h10-app-crashed
跟第一个回答那样,输入heroku run rails console。可以排除一下故障。
2016-02-29T05:18:58.740439+00:00 app[web.1]: /app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass/rails/helpers.rb:11:in `<top (required)>': uninitialized constant Sass::Script (NameError)2016-02-29T05:18:58.740461+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `require'2016-02-29T05:18:58.740463+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `<top (required)>'2016-02-29T05:18:58.740463+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `require'2016-02-29T05:18:58.740464+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `<top (required)>'2016-02-29T05:18:58.740465+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:76:in `require'2016-02-29T05:18:58.740466+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:76:in `block (2 levels) in require'2016-02-29T05:18:58.740466+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:72:in `each'2016-02-29T05:18:58.740469+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:72:in `block in require'2016-02-29T05:18:58.740470+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:61:in `each'2016-02-29T05:18:58.740470+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:61:in `require'2016-02-29T05:18:58.740471+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler.rb:134:in `require'2016-02-29T05:18:58.740472+00:00 app[web.1]:    from /app/config/application.rb:7:in `<top (required)>'2016-02-29T05:18:58.740473+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `require'2016-02-29T05:18:58.740473+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `block in server'2016-02-29T05:18:58.740474+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'2016-02-29T05:18:58.740475+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'2016-02-29T05:18:58.740475+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'2016-02-29T05:18:58.740476+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'2016-02-29T05:18:58.740477+00:00 app[web.1]:    from bin/rails:9:in `require'2016-02-29T05:18:58.740477+00:00 app[web.1]:    from bin/rails:9:in `<main>'2016-02-29T05:18:59.458586+00:00 heroku[web.1]: State changed from starting to crashed2016-02-29T05:18:59.444429+00:00 heroku[web.1]: Process exited with status 1

根据
/app/vendor/bundle/ruby/2.2.0/gems/sass-rails-5.0.1/lib/sass/rails/helpers.rb:11:in `<top (required)>': uninitialized constant Sass::Script (NameError)
可以猜测应该是gem文件中的sass-rails版本的问题。我突然想起了这个细节。
其实根据第三版的书上面的Gemfile配置,书上的配置是gem 'sass-rails','5.0.0.beta1',这一步在执行bundle install的时候就会报错了。我是直接把beta1去掉。

因为这个错误,我把它改成了5.0.1版本。但是还是错误。上周弄得我一头雾水。今天重新整理思路后,再查这个错误。
找到了答案:http://stackoverflow.com/questions/29594420/rails-tutorial-error-with-cloud-9

竟然是要配置为gem 'sass-rails','5.0.2'。

成功正式部署Hello world。


最近看了《音乐的秘密》,一部介绍一首歌的幕后工作,作为程序员应该也能同样看到对职业的一种尊重。

最近好像突然有了软肋,又突然有了铠甲。变得更加的坚定。

0 0
原创粉丝点击