500 internal server error when I try to push my ap

2020-07-30 04:15发布

问题:

I am facing this problem upon pushing my app to Heroku:

  • 500 internal server error
  • ActionView::Template::Error...application.css isn't precompiled (see attached Heroku logs)
  • Also, ActionController::RoutingError (No route matches [GET] "/assets/rails.png"

I am using Twitter Bootstrap 2.0.1 and Rails 3.1.1 (see Gemfile below)

Any guidance would be much appreciated!


HEROKU LOGS

2012-04-06T16:49:38+00:00 app[web.1]: 
2012-04-06T16:49:38+00:00 app[web.1]: Started GET "/" for 115.186.162.46 at 2012-04-06 09:49:38 -0700
2012-04-06T16:49:38+00:00 app[web.1]:   Processing by PostsController#new as HTML
2012-04-06T16:49:38+00:00 app[web.1]: Rendered posts/_form.html.erb (1.4ms)
2012-04-06T16:49:38+00:00 app[web.1]: Rendered posts/new.html.erb within layouts/application (1.8ms)
2012-04-06T16:49:38+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2012-04-06T16:49:38+00:00 app[web.1]: 
2012-04-06T16:49:38+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled):
2012-04-06T16:49:38+00:00 app[web.1]:     6:     <title>Weddoo!</title>
2012-04-06T16:49:38+00:00 app[web.1]:     7:     <%= csrf_meta_tags %>
2012-04-06T16:49:38+00:00 app[web.1]:     8: 
2012-04-06T16:49:38+00:00 app[web.1]:     9:     <%= stylesheet_link_tag "application", :media => "all" %>
2012-04-06T16:49:38+00:00 app[web.1]:     10: 
2012-04-06T16:49:38+00:00 app[web.1]:     11:     <link href="images/favicon.ico" rel="shortcut icon">
2012-04-06T16:49:38+00:00 app[web.1]:     12:     <link href="images/apple-touch-icon.png" rel="apple-touch-icon">
2012-04-06T16:49:38+00:00 app[web.1]:   app/views/layouts/application.html.erb:9:in `_app_views_layouts_application_html_erb__819333137240276330_18641900'
2012-04-06T16:49:38+00:00 app[web.1]:   app/controllers/posts_controller.rb:24:in `new'
2012-04-06T16:49:38+00:00 app[web.1]: 
2012-04-06T16:49:38+00:00 app[web.1]: 
2012-04-06T16:49:38+00:00 app[web.1]: cache: [GET /] miss
2012-04-06T16:49:38+00:00 heroku[router]: GET weddoo.heroku.com/ dyno=web.1 queue=0 wait=0ms service=11ms status=500 bytes=728
2012-04-06T16:49:38+00:00 heroku[nginx]: 115.186.162.46 - - [06/Apr/2012:16:49:38 +0000] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7" weddoo.heroku.com
2012-04-06T16:49:39+00:00 app[web.1]: 
2012-04-06T16:49:39+00:00 app[web.1]: 
2012-04-06T16:49:39+00:00 app[web.1]: Started GET "/" for 115.186.162.46 at 2012-04-06 09:49:39 -0700
2012-04-06T16:49:39+00:00 app[web.1]:   Processing by PostsController#new as HTML
2012-04-06T16:49:39+00:00 app[web.1]: Rendered posts/new.html.erb within layouts/application (1.6ms)
2012-04-06T16:49:39+00:00 app[web.1]: Rendered posts/_form.html.erb (1.4ms)
2012-04-06T16:49:39+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2012-04-06T16:49:39+00:00 app[web.1]: 
2012-04-06T16:49:39+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled):
2012-04-06T16:49:39+00:00 app[web.1]:     6:     <title>Weddoo!</title>
2012-04-06T16:49:39+00:00 app[web.1]:     9:     <%= stylesheet_link_tag "application", :media => "all" %>
2012-04-06T16:49:39+00:00 app[web.1]:     10: 
2012-04-06T16:49:39+00:00 app[web.1]:     11:     <link href="images/favicon.ico" rel="shortcut icon">
2012-04-06T16:49:39+00:00 app[web.1]:     7:     <%= csrf_meta_tags %>
2012-04-06T16:49:39+00:00 app[web.1]:     8: 
2012-04-06T16:49:39+00:00 app[web.1]:     12:     <link href="images/apple-touch-icon.png" rel="apple-touch-icon">
2012-04-06T16:49:39+00:00 app[web.1]:   app/views/layouts/application.html.erb:9:in `_app_views_layouts_application_html_erb__819333137240276330_18641900'
2012-04-06T16:49:39+00:00 app[web.1]:   app/controllers/posts_controller.rb:24:in `new'
2012-04-06T16:49:39+00:00 app[web.1]: 
2012-04-06T16:49:39+00:00 app[web.1]: 
2012-04-06T16:49:39+00:00 app[web.1]: cache: [GET /] miss
2012-04-06T16:49:39+00:00 heroku[router]: GET weddoo.heroku.com/ dyno=web.1 queue=0 wait=0ms service=10ms status=500 bytes=728
2012-04-06T16:49:39+00:00 heroku[nginx]: 115.186.162.46 - - [06/Apr/2012:16:49:39 +0000] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7" weddoo.heroku.com
2012-04-06T16:51:32+00:00 heroku[slugc]: Slug compilation started
2012-04-06T16:51:46+00:00 heroku[api]: Release v8 created by postkhalid@yahoo.com
2012-04-06T16:51:46+00:00 heroku[api]: Deploy db6820d by postkhalid@yahoo.com
2012-04-06T16:51:46+00:00 heroku[web.1]: State changed from up to bouncing
2012-04-06T16:51:46+00:00 heroku[web.1]: State changed from bouncing to created
2012-04-06T16:51:46+00:00 heroku[web.1]: State changed from created to starting
2012-04-06T16:51:47+00:00 heroku[slugc]: Slug compilation finished
2012-04-06T16:51:48+00:00 heroku[web.1]: Stopping process with SIGTERM
2012-04-06T16:51:48+00:00 app[web.1]: >> Stopping ...
2012-04-06T16:51:50+00:00 heroku[web.1]: Process exited with status 0
2012-04-06T16:51:51+00:00 heroku[web.1]: Starting process with command `thin -p 30481 -e production -R /home/heroku_rack/heroku.ru start`
2012-04-06T16:51:55+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2012-04-06T16:51:55+00:00 app[web.1]: >> Maximum connections set to 1024
2012-04-06T16:51:55+00:00 app[web.1]: >> Listening on 0.0.0.0:30481, CTRL+C to stop
2012-04-06T16:51:56+00:00 heroku[web.1]: State changed from starting to up
2012-04-06T16:51:56+00:00 heroku[rake.1]: State changed from created to starting
2012-04-06T16:52:02+00:00 app[rake.1]: Awaiting client
2012-04-06T16:52:02+00:00 heroku[rake.1]: State changed from starting to up
2012-04-06T16:52:02+00:00 app[rake.1]: Starting process with command `bundle exec rake db:migrate`
2012-04-06T16:52:07+00:00 heroku[rake.1]: Process exited with status 0
2012-04-06T16:52:07+00:00 heroku[rake.1]: State changed from up to complete
2012-04-06T16:52:20+00:00 app[web.1]: 
2012-04-06T16:52:20+00:00 app[web.1]: 
2012-04-06T16:52:20+00:00 app[web.1]: Started GET "/assets/rails.png" for 115.186.162.46 at 2012-04-06 09:52:20 -0700
2012-04-06T16:52:20+00:00 heroku[router]: GET weddoo.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=80ms status=404 bytes=728
2012-04-06T16:52:20+00:00 app[web.1]: 
2012-04-06T16:52:20+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-04-06T16:52:20+00:00 app[web.1]:   
2012-04-06T16:52:20+00:00 app[web.1]: 
2012-04-06T16:52:20+00:00 app[web.1]: 
2012-04-06T16:52:20+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-04-06T16:52:21+00:00 heroku[nginx]: 115.186.162.46 - - [06/Apr/2012:16:52:21 +0000] "GET /assets/rails.png HTTP/1.1" 404 728 "http://weddoo.heroku.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7" weddoo.heroku.com
2012-04-06T16:52:23+00:00 app[web.1]: 
2012-04-06T16:52:23+00:00 app[web.1]: 
2012-04-06T16:52:23+00:00 app[web.1]: Started GET "/" for 115.186.162.46 at 2012-04-06 09:52:23 -0700
2012-04-06T16:52:23+00:00 app[web.1]:   Processing by PostsController#new as HTML
2012-04-06T16:52:23+00:00 app[web.1]: Rendered posts/_form.html.erb (25.6ms)
2012-04-06T16:52:23+00:00 app[web.1]: Rendered posts/new.html.erb within layouts/application (53.8ms)
2012-04-06T16:52:23+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled):
2012-04-06T16:52:23+00:00 app[web.1]: Completed 500 Internal Server Error in 150ms
2012-04-06T16:52:23+00:00 app[web.1]:     6:     <title>Weddoo!</title>
2012-04-06T16:52:23+00:00 app[web.1]: 
2012-04-06T16:52:23+00:00 app[web.1]:     7:     <%= csrf_meta_tags %>
2012-04-06T16:52:23+00:00 app[web.1]:     8: 
2012-04-06T16:52:23+00:00 app[web.1]:     10: 
2012-04-06T16:52:23+00:00 app[web.1]:     9:     <%= stylesheet_link_tag "application", :media => "all" %>
2012-04-06T16:52:23+00:00 app[web.1]:     11:     <link href="images/favicon.ico" rel="shortcut icon">
2012-04-06T16:52:23+00:00 heroku[router]: GET weddoo.heroku.com/ dyno=web.1 queue=0 wait=0ms service=206ms status=500 bytes=728
2012-04-06T16:52:23+00:00 app[web.1]:     12:     <link href="images/apple-touch-icon.png" rel="apple-touch-icon">
2012-04-06T16:52:23+00:00 app[web.1]:   app/views/layouts/application.html.erb:9:in `_app_views_layouts_application_html_erb___37461260917978840_28780360'
2012-04-06T16:52:23+00:00 app[web.1]:   app/controllers/posts_controller.rb:24:in `new'
2012-04-06T16:52:23+00:00 app[web.1]: 
2012-04-06T16:52:23+00:00 app[web.1]: 
2012-04-06T16:52:23+00:00 app[web.1]: cache: [GET /] miss
2012-04-06T16:52:24+00:00 heroku[nginx]: 115.186.162.46 - - [06/Apr/2012:16:52:24 +0000] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7" weddoo.heroku.com

GEMFILE

source 'http://rubygems.org'

gem 'rails', '3.1.1'

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

gem 'sqlite3'
gem 'pg'
gem 'json'
gem "twitter-bootstrap-rails", "~> 2.0.1.0"

# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails',   '~> 3.1.4'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug'

RAKEFILE

#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)

Mysalary::Application.load_tasks

HEROKU INFO

=== weddoo
Addons:        Shared Database 5MB
Database Size: 64k
Dynos:         1
Git URL:       git@heroku.com:weddoo.git
Owner:         postkhalid@yahoo.com
Repo Size:     11M
Slug Size:     11M
Stack:         bamboo-mri-1.9.2
Web URL:       http://weddoo.heroku.com/
Workers:       0

回答1:

So based upon the heroku info that you provided I see that you are on the bamboo stack and that stack does not support Rails 3.1+. Only the cedar stack supports Rails 3.1+. You'll need to use the following command to create a new app on the cedar stack:

heroku create --stack cedar


回答2:

This is the result of your stylesheets not being compiled. Heroku will attempt to run

rake assets:precompile

before deploying your app. If the precompile command fails it will fail silently for now. I actually have an open issue for this on Heroku

https://github.com/heroku/heroku-buildpack-ruby/issues/9

The most likely cause is that the Rakefile is trying to load (or access) a gem. Heroku buildpacks attempt to compile the stylesheets before they have access to the gemset so any requires will fail. The best way to avoid this is to wrap those requires in your Rakefile in environment specific conditionals:

if Rails.env == 'development' || Rails.env == 'test'
  require 'somegem1'
  require 'somegem2'

  # whatever code is being used by those gems goes in this block
end