2012-09-02 105 views
1

过去几个晚上我一直在将我的第一个rails应用程序部署到heroku,并且一直在努力弄清楚如何解决这个问题。调试Heroku部署(500错误)

我使用Michael Hartl的教程(http://ruby.railstutorial.org/chapters/beginning#sec-deploying)来确保我在Cedar Stack上设置了我的应用程序。

根据Heroku教程,我使用“瘦”作为服务器。

我读了一堆的职位,并使用预编译我的资产:

的Heroku运行包的exec耙资产:预编译 捆绑高管耙资产:预编译

我也迁移我的数据库。

我的应用程序在我的本地主机上工作。

这里是我的Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.8' 
gem 'bootstrap-sass', '2.0.0' 
gem 'bcrypt-ruby' 
gem 'thin' 

group :development, :test do 
    gem 'rspec-rails' 
end 

group :development do 
    gem 'sqlite3' 
end 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

group :production do 
    gem 'pg' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

group :test do 
    gem 'capybara' 
    gem 'factory_girl_rails' 
end 

这里是我的Heroku的日志

2012-09-02T01:56:17+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5) 
2012-09-02T01:56:20+00:00 app[web.1]: => Booting Thin 
2012-09-02T01:56:20+00:00 app[web.1]: => Rails 3.2.8 application starting in production on http://0.0.0.0:50510 
2012-09-02T01:56:20+00:00 app[web.1]: => Call with -d to detach 
2012-09-02T01:56:20+00:00 app[web.1]: => Ctrl-C to shutdown server 
2012-09-02T01:56:20+00:00 app[web.1]: Connecting to database specified by DATABASE_URL 
2012-09-02T01:56:21+00:00 app[web.1]: >> Thin web server (v1.4.1 codename Chromeo) 
2012-09-02T01:56:21+00:00 app[web.1]: >> Maximum connections set to 1024 
2012-09-02T01:56:21+00:00 app[web.1]: >> Listening on 0.0.0.0:50510, CTRL+C to stop 
2012-09-02T01:56:21+00:00 heroku[web.1]: State changed from starting to up 
2012-09-02T01:56:23+00:00 app[web.1]: 
2012-09-02T01:56:23+00:00 app[web.1]: 
2012-09-02T01:56:23+00:00 app[web.1]: Started GET "/" for 108.210.1.241 at 2012-09-02 01:56:23 +0000 
2012-09-02T01:56:23+00:00 app[web.1]: Processing by StaticPagesController#home as HTML 
2012-09-02T01:56:23+00:00 app[web.1]: Rendered static_pages/home.html.erb within layouts/application (14.9ms) 
2012-09-02T01:56:23+00:00 app[web.1]: Completed 500 Internal Server Error in 103ms 
2012-09-02T01:56:23+00:00 app[web.1]: ActionView::Template::Error (screen.css isn't precompiled): 
2012-09-02T01:56:23+00:00 app[web.1]: 
2012-09-02T01:56:23+00:00 app[web.1]:  2: <html> 
2012-09-02T01:56:23+00:00 app[web.1]:  3: <head> 
2012-09-02T01:56:23+00:00 heroku[router]: GET morning-inlet-9513.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=262ms status=500 bytes=643 
2012-09-02T01:56:23+00:00 app[web.1]:  4: <title>GabisBag</title> 
2012-09-02T01:56:23+00:00 app[web.1]: 
2012-09-02T01:56:23+00:00 app[web.1]:  5: <%= stylesheet_link_tag "screen", :media => "screen" %> 
2012-09-02T01:56:23+00:00 app[web.1]: 
2012-09-02T01:56:23+00:00 app[web.1]: app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__1090905269972481286_30934000' 
2012-09-02T01:56:23+00:00 app[web.1]:  6: <%= stylesheet_link_tag "landing_pages", :media => "screen" %> 
2012-09-02T01:56:23+00:00 app[web.1]:  7: <%= javascript_include_tag "application" %> 
2012-09-02T01:56:23+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2012-09-02T02:05:54+00:00 heroku[api]: Starting process with command `bundle exec rake assets:precompile` by [email protected] 
2012-09-02T02:05:57+00:00 heroku[run.1]: Awaiting client 
2012-09-02T02:05:57+00:00 heroku[run.1]: Starting process with command `bundle exec rake assets:precompile` 
2012-09-02T02:05:58+00:00 heroku[run.1]: State changed from starting to up 
2012-09-02T02:06:14+00:00 heroku[run.1]: Client connection closed. Sending SIGHUP to all processes 
2012-09-02T02:06:15+00:00 heroku[run.1]: Process exited with status 0 
2012-09-02T02:06:15+00:00 heroku[run.1]: State changed from up to complete 
2012-09-02T02:08:22+00:00 heroku[slugc]: Slug compilation started 
2012-09-02T02:08:37+00:00 heroku[api]: D 
eploy 6817a8e by [email protected] 
2012-09-02T02:08:37+00:00 heroku[api]: Release v8 created by [email protected] 
2012-09-02T02:08:38+00:00 heroku[web.1]: State changed from up to starting 
2012-09-02T02:08:38+00:00 heroku[slugc]: Slug compilation finished 
2012-09-02T02:08:40+00:00 heroku[web.1]: Starting process with command `bundle exec rails server thin -p 42652 -e production` 
2012-09-02T02:08:41+00:00 heroku[web.1]: Stopping all processes with SIGTERM 
2012-09-02T02:08:41+00:00 app[web.1]: Exiting 
2012-09-02T02:08:42+00:00 heroku[web.1]: Process exited with status 0 
2012-09-02T02:08:44+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5) 
2012-09-02T02:08:44+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5) 
2012-09-02T02:08:47+00:00 app[web.1]: => Booting Thin 
2012-09-02T02:08:47+00:00 app[web.1]: => Rails 3.2.8 application starting in production on http://0.0.0.0:42652 
2012-09-02T02:08:47+00:00 app[web.1]: => Call with -d to detach 
2012-09-02T02:08:47+00:00 app[web.1]: => Ctrl-C to shutdown server 
2012-09-02T02:08:47+00:00 app[web.1]: Connecting to database specified by DATABASE_URL 
2012-09-02T02:08:48+00:00 app[web.1]: >> Thin web server (v1.4.1 codename Chromeo) 
2012-09-02T02:08:48+00:00 app[web.1]: >> Maximum connections set to 1024 
2012-09-02T02:08:48+00:00 app[web.1]: >> Listening on 0.0.0.0:42652, CTRL+C to stop 
2012-09-02T02:08:49+00:00 heroku[web.1]: State changed from starting to up 
2012-09-02T02:08:50+00:00 app[web.1]: Started GET "/" for 108.210.1.241 at 2012-09-02 02:08:50 +0000 
2012-09-02T02:08:50+00:00 app[web.1]: 
2012-09-02T02:08:50+00:00 app[web.1]: 
2012-09-02T02:08:50+00:00 app[web.1]: Processing by StaticPagesController#home as HTML 
2012-09-02T02:08:50+00:00 app[web.1]: Rendered static_pages/home.html.erb within layouts/application (9.3ms) 
2012-09-02T02:08:50+00:00 app[web.1]: Completed 500 Internal Server Error in 77ms 
2012-09-02T02:08:50+00:00 app[web.1]: 
2012-09-02T02:08:50+00:00 app[web.1]: ActionView::Template::Error (screen.css isn't precompiled): 
2012-09-02T02:08:50+00:00 app[web.1]:  2: <html> 
2012-09-02T02:08:50+00:00 app[web.1]:  3: <head> 
2012-09-02T02:08:50+00:00 app[web.1]:  4: <title>GabisBag</title> 
2012-09-02T02:08:50+00:00 app[web.1]:  5: <%= stylesheet_link_tag "screen", :media => "screen" %> 
2012-09-02T02:08:50+00:00 app[web.1]:  6: <%= stylesheet_link_tag "landing_pages", :media => "screen" %> 
2012-09-02T02:08:50+00:00 app[web.1]:  7: <%= javascript_include_tag "application" %> 
2012-09-02T02:08:50+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2012-09-02T02:08:50+00:00 app[web.1]: app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__3619394764979485472_40067220' 
2012-09-02T02:08:50+00:00 app[web.1]: 
2012-09-02T02:08:50+00:00 app[web.1]: 
2012-09-02T02:08:50+00:00 heroku[router]: GET morning-inlet-9513.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=221ms status=500 bytes=643 
2012-09-02T02:14:08+00:00 heroku[api]: Starting process with command `bundle exec rake db:migrate` by [email protected] 
2012-09-02T02:14:10+00:00 heroku[run.1]: Awaiting client 
2012-09-02T02:14:10+00:00 heroku[run.1]: Starting process with command `bundle exec rake db:migrate` 
2012-09-02T02:14:11+00:00 heroku[run.1]: State changed from starting to up 
2012-09-02T02:14:17+00:00 heroku[run.1]: Client connection closed. Sending SIGHUP to all processes 
2012-09-02T02:14:18+00:00 heroku[run.1]: Process exited with status 0 
2012-09-02T02:14:18+00:00 heroku[run.1]: State changed from up to complete 
2012-09-02T02:14:35+00:00 app[web.1]: 
2012-09-02T02:14:35+00:00 app[web.1]: Started GET "/" for 108.210.1.241 at 2012-09-02 02:14:35 +0000 
2012-09-02T02:14:35+00:00 app[web.1]: 
2012-09-02T02:14:35+00:00 app[web.1]: Processing by StaticPagesController#home as HTML 
2012-09-02T02:14:35+00:00 app[web.1]: Rendered static_pages/home.html.erb within layouts/application (0.5ms) 
2012-09-02T02:14:35+00:00 app[web.1]: Completed 500 Internal Server Error in 2ms 
2012-09-02T02:14:35+00:00 app[web.1]: 
2012-09-02T02:14:35+00:00 app[web.1]: ActionView::Template::Error (screen.css isn't precompiled): 
2012-09-02T02:14:35+00:00 app[web.1]:  2: <html> 
2012-09-02T02:14:35+00:00 app[web.1]:  3: <head> 
2012-09-02T02:14:35+00:00 app[web.1]:  4: <title>GabisBag</title> 
2012-09-02T02:14:35+00:00 app[web.1]:  5: <%= stylesheet_link_tag "screen", :media => "screen" %> 
2012-09-02T02:14:35+00:00 app[web.1]:  6: <%= stylesheet_link_tag "landing_pages", :media => "screen" %> 
2012-09-02T02:14:35+00:00 app[web.1]:  7: <%= javascript_include_tag "application" %> 
2012-09-02T02:14:35+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2012-09-02T02:14:35+00:00 app[web.1]: app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__3619394764979485472_40067220' 
2012-09-02T02:14:35+00:00 app[web.1]: 
2012-09-02T02:14:35+00:00 app[web.1]: 
2012-09-02T02:14:35+00:00 heroku[router]: GET morning-inlet-9513.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=11ms status=500 bytes=643 

回答

1

以下是我最终如何解决问题的方法。感谢那些在别处提到我的人,以便我可以将它们放在一起。

首先,我将Blueprint移动到了供应商目录。我不认为这对解决方案至关重要,但它感觉更清洁。

编译问题:

这个线程:blueprint css rails 3.1 help是真的很有帮助。我发现Martin和Gary的回复(第2和第3)比选定的回复更有帮助。

为什么我在编译(个人)时遇到问题,部分原因是我对Blueprint文件进行了一些编辑,这意味着他们需要在部署之前再次编译。

此主题:rails 3.1.0 ActionView::Template::Error (application.css isn't precompiled)在这方面很有帮助。基本上,在上传到heroku之前,运行“Bundle exec rake assets:precompile”。上传后我还运行“heroku run rake assets:precompile”。

我是怎么摆脱URL的斜线在我的链接: 的网址是此代码蓝图/ print.css的结果:

a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} 
a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} 

我解决了注释掉的代码问题。当然,在更改文件之后,您必须重新分配资源:再次预编译。但是,这一切都工作!

2

这看起来像重要的部分:

ActionView::Template::Error (screen.css isn't precompiled): 

好像this thread将解决您的问题。

,因为它说:

On heroku server (readonly filesystem), If you want runtime compilation of css (its not recommended but you can do it), make sure you have done settings like below - 

# inside config/application.rb 
config.assets.enabled = true 
config.assets.prefix = Rails.root.join('tmp/assets').to_s 

# If you are using sass then keep gem outside of asset group 
gem 'sass-rails', '3.1.4' 

# inside config/environments/production.rb 
config.assets.compile = true 
+0

感谢您的回复!我昨晚看过那篇文章并试了一下。根据你的建议,我今天早上再试一次。仍然没有工作。尽管如此,我还没有尝试过你在这里提倡的运行时编译方法,因为我读过的所有内容都表明这样做会有相当大的性能损失。我错了吗? – jflores

+0

是的,有,但我找不到任何其他选项来解决您遇到的问题。但是,你可能会破坏一些东西。 –

1

我在这里找到了答案:blueprint css rails 3.1 help

到目前为止,我所知道的,这似乎是一个问题,使用Blueprint CSS框架。这就是说,其他两个注意事项:

  1. 我注释掉<%= stylesheet_link_tag “画面”,:媒体=> “屏幕” %>从我application.html.erb布局文件的代码。
  2. 我没有安装'rubyracer'gem。我安装它,因为它在引用的答案的配置文件中。我不知道它做了什么。
  3. 无论我有链接,URL斜杠(“/”)现在都会再次显示。我的预感是,它只是一些CSS文件中的东西,我不得不深入并进行调试。但是,首先我有stylesheet_link_tag事情的全部原因是因为我试图摆脱那些讨厌的斜线。最终,我决定部署更重要。

希望这对别人有帮助!

+0

另外,我在本地预编译所有东西(bundle exec rake assets:precompile)和heroku(heroku run bundle exec rake assets:预编译) – jflores

+0

嗨,很高兴它的工作!如果此答案解决了您的问题,则应点击大号复选框将答案标记为“已接受”。这有助于人们知道您的问题已得到解决:)请参阅[此常见问题解答条目](http://meta.stackexchange.com/a/5235/189918)。欢迎来到堆栈溢出! – culix

+0

谢谢你提醒我!这个解决方案实际上并不完美,因为我仍然有这些斜杠。但是,我最终弄清楚了,所以我发布了一个解决这两个问题(编译问题和URL /斜杠问题)的答案。 – jflores